{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "c5148957",
   "metadata": {},
   "source": [
    "# Data drift detection"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "6da3874d",
   "metadata": {},
   "source": [
    "In the context of forecasting and machine learning, **data drift** refers to a change in the statistical properties of the input data over time compared to the data on which the model was originally trained. When this happens, the model may start to produce less accurate or unreliable predictions, since it no longer generalizes well to the new data distribution.\n",
    "\n",
    "Data drift can take several forms:\n",
    "\n",
    "- **Covariate Drift (Feature Drift)**: The distribution of the input features changes, but the relationship between features and target remains the same. Example: A model was trained when a feature had values in a certain range. Over time, if that feature shifts to a different range, covariate drift occurs.\n",
    "\n",
    "- **Prior Probability Drift (Label Drift)**: The distribution of the target variable changes. Example: A model trained to predict energy consumption during a season may fail if seasonal patterns change due to external factors.\n",
    "\n",
    "- **Concept Drift**: The relationship between input features and the target variable changes. Example: A model predicting energy consumption from weather data might fail if new technologies or behaviors alter how weather affects energy usage.\n",
    "\n",
    "Detecting and addressing data drift is crucial for maintaining model reliability in production environments. Common strategies include:\n",
    "\n",
    "- **Monitoring input data** during prediction to detect changes early.\n",
    "\n",
    "- **Tracking model performance** metrics (e.g., accuracy, precision, recall) over time.\n",
    "\n",
    "- **Retraining models** periodically with recent data to adapt to evolving conditions.\n",
    "\n",
    "**Skforecast** includes two dedicated classes for data drift detection:\n",
    "\n",
    "+ [`PopulationDriftDetector`](../api/drift_detection.html#skforecast.drift_detection._population_drift.PopulationDriftDetector): detects changes at the **population level**, helping identify when a forecasting model should be retrained.\n",
    "\n",
    "+ [`RangeDriftDetector`](../api/drift_detection.html#skforecast.drift_detection._range_drift.RangeDriftDetector): detects changes at the **single-observation level**, suitable for validating input data during the prediction phase."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce3b6afe",
   "metadata": {},
   "source": [
    "## Drift detection during model training\n",
    "\n",
    "The [`PopulationDriftDetector`](../api/drift_detection.html#skforecast.drift_detection._population_drift.PopulationDriftDetector) is designed to detect **feature drift** and **label drift** in time series data. It evaluates whether the distribution of the input variables (both target and exogenous) remains consistent with the data used to train the forecasting model.\n",
    "\n",
    "By comparing **recent observations** with the **training data**, the detector identifies significant distributional changes that may indicate the model needs retraining.\n",
    "\n",
    "The statistical metrics used depend on the data type:\n",
    "\n",
    "- **Numerical features**: Kolmogorov–Smirnov statistic and Jensen–Shannon distance.\n",
    "\n",
    "- **Categorical features**: Chi-squared statistic and Jensen–Shannon distance.\n",
    "\n",
    "The API follows the same design principles as Skforecast forecasters:\n",
    "\n",
    "+ The same data used to train a forecaster can also be used to fit a [`PopulationDriftDetector`](../api/drift_detection.html#skforecast.drift_detection._population_drift.PopulationDriftDetector).\n",
    "\n",
    "+ When new historical data becomes available (i.e., multiple new observations), the `predict` method can be used to check for drift.\n",
    "\n",
    "+ If drift is detected, users should analyze its cause and consider retraining or recalibrating the forecasting model."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5a16d27",
   "metadata": {},
   "source": [
    "<div class=\"admonition note\" name=\"html-admonition\" style=\"background: rgba(0,184,212,.1); padding-top: 0px; padding-bottom: 6px; border-radius: 8px; border-left: 8px solid #00b8d4; border-color: #00b8d4; padding-left: 10px; padding-right: 10px;\">\n",
    "\n",
    "<p class=\"title\">\n",
    "    <i style=\"font-size: 18px; color:#00b8d4;\"></i>\n",
    "    <b style=\"color: #00b8d4;\">&#9998 Note</b>\n",
    "</p>\n",
    "\n",
    "<p>\n",
    "\n",
    "  This implementation is inspired by <a href=\"https://nannyml.readthedocs.io/en/stable/tutorials/detecting_data_drift/univariate_drift_detection.html\" target=\"_blank\" rel=\"noopener noreferrer\">NannyML's DriftDetector</a>, but provides a <b>lightweight adaptation</b> tailored to Skforecast’s time series context.\n",
    "\n",
    "  <ul>\n",
    "      <li>\n",
    "        <b>Memory-efficient:</b> The detector does not store the full reference data. Instead, it keeps only the precomputed statistics required to evaluate drift efficiently during prediction.\n",
    "      </li>\n",
    "      <li>\n",
    "        <b>Empirical thresholds:</b> All thresholds are derived from the specified quantile of the empirical distributions computed from the reference data chunks.\n",
    "      </li>\n",
    "      <li>\n",
    "        <b>Out-of-range detection:</b> It also checks for out-of-range values in numerical features and for unseen categories in categorical features.\n",
    "      </li>\n",
    "      <li>\n",
    "        <b>Multiple time series support:</b> It can handle multiple time series, each one with its own exogenous variables.\n",
    "      </li>\n",
    "  </ul>\n",
    "\n",
    "  For an in-depth explanation of the underlying calculations, see <a href=\"../user_guides/drift-detection.html#deep-dive-into-temporal-drift-detection-in-time-series\" target=\"_blank\" rel=\"noopener noreferrer\">Deep dive into temporal drift detection in time series</a>.\n",
    "\n",
    "  If user requires more advanced features, such as multivariate drift detection or data quality checks, consider using <a href=\"https://nannyml.readthedocs.io/en/stable/\" target=\"_blank\" rel=\"noopener noreferrer\">NannyML</a> directly.\n",
    "</p>\n",
    "\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40617386",
   "metadata": {},
   "source": [
    "To illustrate how drift detection works, the dataset is divided into a **training set** and a **new data partition**, simulating a real-world scenario where additional data becomes available after the model has been trained.\n",
    "\n",
    "To emulate data drift, the variable `temp` in the new data partition is intentionally modified:\n",
    "\n",
    "- **June:** Temperatures are increased by **+10 ºC**.\n",
    "\n",
    "- **July:** Temperatures are increased by **+20 ºC**.\n",
    "\n",
    "- **October:** Temperatures are replaced by a **constant value** equal to the mean of the original data. Although this value lies within the original range, its lack of variability makes it statistically atypical.\n",
    "\n",
    "- **December:** Temperatures are decreased by **-10 ºC**.\n",
    "\n",
    "The variable `hum` remains unchanged throughout the new data partition, serving as a control variable to demonstrate that the drift detector correctly identifies no drift when none exists."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "55b88ca0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Libraries\n",
    "# ==============================================================================\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from skforecast.datasets import fetch_dataset\n",
    "from skforecast.plot import set_dark_theme\n",
    "from skforecast.drift_detection import PopulationDriftDetector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7b792ed7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date_time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2011-01-01 00:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>81.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 01:00:00</th>\n",
       "      <td>9.02</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 02:00:00</th>\n",
       "      <td>9.02</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 03:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 04:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     temp   hum\n",
       "date_time                      \n",
       "2011-01-01 00:00:00  9.84  81.0\n",
       "2011-01-01 01:00:00  9.02  80.0\n",
       "2011-01-01 02:00:00  9.02  80.0\n",
       "2011-01-01 03:00:00  9.84  75.0\n",
       "2011-01-01 04:00:00  9.84  75.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Data\n",
    "# ==============================================================================\n",
    "data = fetch_dataset('bike_sharing', verbose=False)\n",
    "data = data[['temp', 'hum']]\n",
    "display(data.head())\n",
    "data_train = data.iloc[: 9000].copy()\n",
    "data_new  = data.iloc[9000:].copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8ab191c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Inject changes in the distribution\n",
    "# ==============================================================================\n",
    "data_new_drift = data_new.copy()\n",
    "\n",
    "# Sum +10 to observations of june 2012\n",
    "data_new_drift.loc['2012-06-01 00:00:00':'2012-06-30 23:00:00', 'temp'] = (\n",
    "    data_new_drift.loc['2012-06-01 00:00:00':'2012-06-30 23:00:00', 'temp'] + 10\n",
    ")\n",
    "\n",
    "# Sum +20 to observations of july 2012\n",
    "data_new_drift.loc['2012-07-01 00:00:00':'2012-07-31 23:00:00', 'temp'] = (\n",
    "    data_new_drift.loc['2012-07-01 00:00:00':'2012-07-31 23:00:00', 'temp'] + 20\n",
    ")\n",
    "\n",
    "# Constant mean value in October 2012\n",
    "data_new_drift.loc['2012-10-01 00:00:00':'2012-10-31 23:00:00', 'temp'] = (\n",
    "    data_new_drift.loc['2012-10-01 00:00:00':'2012-10-31 23:00:00', 'temp'].mean()\n",
    ")\n",
    "\n",
    "# Substract -10 to december 2012\n",
    "data_new_drift.loc['2012-12-01 00:00:00':'2012-12-31 23:00:00', 'temp'] = (\n",
    "    data_new_drift.loc['2012-12-01 00:00:00':'2012-12-31 23:00:00', 'temp'] - 10\n",
    ")\n",
    "\n",
    "# Plot\n",
    "# ==============================================================================\n",
    "set_dark_theme()\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "data_train.loc[:, 'temp'].plot(ax=ax, label='Train')\n",
    "data_new_drift.loc[:, 'temp'].plot(ax=ax, label='Test with drift', color='red')\n",
    "data_new.loc[:, 'temp'].plot(ax=ax, label='Test', color='green')\n",
    "ax.axhline(data_train['temp'].max(), color='white', linestyle=':', label='Max Train')\n",
    "ax.axhline(data_train['temp'].min(), color='white', linestyle=':', label='Min Train')\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6094f84f",
   "metadata": {},
   "source": [
    "When creating a `PopulationDriftDetector` instance, two key arguments must be specified:\n",
    "\n",
    "+ `chunk_size`: Defines the number of observations in each data chunk used to compare distributions. A smaller chunk size enables more frequent drift checks but can increase false positives due to higher variability. Conversely, a larger chunk size smooths out variability but may delay drift detection. The optimal value depends on the trade-off between sensitivity and stability for the specific application and dataset.\n",
    "\n",
    "+ `threshold`: Specifies the percentile threshold used to determine whether drift has occurred. The higher the threshold, the more conservative the detector will be in flagging drift."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "24c92a27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <style>\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 {\n",
       "            font-family: 'Arial', sans-serif;\n",
       "            font-size: 0.9em;\n",
       "            color: #333333;\n",
       "            border: 1px solid #ddd;\n",
       "            background-color: #f0f8ff;\n",
       "            padding: 5px 15px;\n",
       "            border-radius: 8px;\n",
       "            max-width: 600px;\n",
       "            #margin: auto;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 h2 {\n",
       "            font-size: 1.5em;\n",
       "            color: #222222;\n",
       "            border-bottom: 2px solid #ddd;\n",
       "            padding-bottom: 5px;\n",
       "            margin-bottom: 15px;\n",
       "            margin-top: 5px;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 details {\n",
       "            margin: 10px 0;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 summary {\n",
       "            font-weight: bold;\n",
       "            font-size: 1.1em;\n",
       "            color: #000000;\n",
       "            cursor: pointer;\n",
       "            margin-bottom: 5px;\n",
       "            background-color: #b3dbfd;\n",
       "            padding: 5px;\n",
       "            border-radius: 5px;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 summary:hover {\n",
       "            color: #000000;\n",
       "            background-color: #e0e0e0;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 ul {\n",
       "            font-family: 'Courier New', monospace;\n",
       "            list-style-type: none;\n",
       "            padding-left: 20px;\n",
       "            margin: 10px 0;\n",
       "            line-height: normal;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 li {\n",
       "            margin: 5px 0;\n",
       "            font-family: 'Courier New', monospace;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 li strong {\n",
       "            font-weight: bold;\n",
       "            color: #444444;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 li::before {\n",
       "            content: \"- \";\n",
       "            color: #666666;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 a {\n",
       "            color: #001633;\n",
       "            text-decoration: none;\n",
       "        }\n",
       "        .container-71860dfd1f7e45c19e2bf4574482a1e1 a:hover {\n",
       "            color: #359ccb; \n",
       "        }\n",
       "    </style>\n",
       "    \n",
       "        <div class=\"container-71860dfd1f7e45c19e2bf4574482a1e1\">\n",
       "            <p style=\"font-size: 1.5em; font-weight: bold; margin-block-start: 0.83em; margin-block-end: 0.83em;\">PopulationDriftDetector</p>\n",
       "            <details>\n",
       "                <summary>General Information</summary>\n",
       "                <ul>\n",
       "                    <li><strong>Fitted features:</strong> ['temp', 'hum']</li>\n",
       "                    <li><strong>Is fitted:</strong> True</li>\n",
       "                </ul>\n",
       "            </details>\n",
       "            <p>\n",
       "                <a href=\"https://skforecast.org/0.19.0/api/drift_detection.html#skforecast.drift_detection._population_drift.PopulationDriftDetector\">&#128712 <strong>API Reference</strong></a>\n",
       "                &nbsp;&nbsp;\n",
       "                <a href=\"https://skforecast.org/0.19.0/user_guides/drift-detection.html\">&#128462 <strong>User Guide</strong></a>\n",
       "            </p>\n",
       "        </div>\n",
       "        "
      ],
      "text/plain": [
       "======================= \n",
       "PopulationDriftDetector \n",
       "======================= \n",
       "Fitted features = ['temp', 'hum'] \n",
       "Is fitted       = True"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Fit detector using the training data\n",
    "# ==============================================================================\n",
    "detector = PopulationDriftDetector(\n",
    "               chunk_size = 'ME',  # Monthly chunks         \n",
    "               threshold  = 0.95\n",
    "           )\n",
    "detector.fit(data_train)\n",
    "detector"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4c837fa3",
   "metadata": {},
   "source": [
    "Once the detector has been **fitted**, it can be used to **evaluate new data** using the `predict` method. This method returns two DataFrames:\n",
    "\n",
    "+ **Detailed results:** Contain information about the computed statistics, thresholds, and drift status for each data chunk.\n",
    "\n",
    "+ **Summary results:** Provide an overview showing the number and percentage of chunks where drift was detected."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "c6070731",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Detect drift in new data\n",
    "# ==============================================================================\n",
    "drift_results, drift_summary = detector.predict(data_new_drift)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4782c60a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chunk</th>\n",
       "      <th>chunk_start</th>\n",
       "      <th>chunk_end</th>\n",
       "      <th>feature</th>\n",
       "      <th>ks_statistic</th>\n",
       "      <th>threshold_ks</th>\n",
       "      <th>chi2_statistic</th>\n",
       "      <th>threshold_chi2</th>\n",
       "      <th>jensen_shannon</th>\n",
       "      <th>threshold_js</th>\n",
       "      <th>reference_range</th>\n",
       "      <th>is_out_of_range</th>\n",
       "      <th>drift_ks_statistic</th>\n",
       "      <th>drift_chi2_statistic</th>\n",
       "      <th>drift_js</th>\n",
       "      <th>drift_detected</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2012-01-11</td>\n",
       "      <td>2012-01-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.490175</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.546958</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2012-02-01</td>\n",
       "      <td>2012-02-29 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.477663</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.523748</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>2012-03-01</td>\n",
       "      <td>2012-03-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.232412</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.373938</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>2012-04-01</td>\n",
       "      <td>2012-04-30 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.217000</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.455947</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>2012-05-01</td>\n",
       "      <td>2012-05-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.443082</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.539446</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5</td>\n",
       "      <td>2012-06-01</td>\n",
       "      <td>2012-06-30 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.902111</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.877304</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>6</td>\n",
       "      <td>2012-07-01</td>\n",
       "      <td>2012-07-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>7</td>\n",
       "      <td>2012-08-01</td>\n",
       "      <td>2012-08-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.637269</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.652528</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>8</td>\n",
       "      <td>2012-09-01</td>\n",
       "      <td>2012-09-30 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.446389</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.518331</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>9</td>\n",
       "      <td>2012-10-01</td>\n",
       "      <td>2012-10-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.537556</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.863793</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>10</td>\n",
       "      <td>2012-11-01</td>\n",
       "      <td>2012-11-30 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.468611</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.562611</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>11</td>\n",
       "      <td>2012-12-01</td>\n",
       "      <td>2012-12-31 23:00:00</td>\n",
       "      <td>temp</td>\n",
       "      <td>0.860731</td>\n",
       "      <td>0.682966</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.843966</td>\n",
       "      <td>0.689223</td>\n",
       "      <td>(0.8200000000000001, 39.36)</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0</td>\n",
       "      <td>2012-01-11</td>\n",
       "      <td>2012-01-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.130825</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.152290</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1</td>\n",
       "      <td>2012-02-01</td>\n",
       "      <td>2012-02-29 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.161425</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.199334</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2</td>\n",
       "      <td>2012-03-01</td>\n",
       "      <td>2012-03-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.119387</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.150733</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>3</td>\n",
       "      <td>2012-04-01</td>\n",
       "      <td>2012-04-30 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.278944</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.328472</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>4</td>\n",
       "      <td>2012-05-01</td>\n",
       "      <td>2012-05-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.093703</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.205141</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>5</td>\n",
       "      <td>2012-06-01</td>\n",
       "      <td>2012-06-30 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.171722</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.240059</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6</td>\n",
       "      <td>2012-07-01</td>\n",
       "      <td>2012-07-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.103219</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.178075</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>7</td>\n",
       "      <td>2012-08-01</td>\n",
       "      <td>2012-08-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.110520</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.196713</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>8</td>\n",
       "      <td>2012-09-01</td>\n",
       "      <td>2012-09-30 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.076111</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.196889</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>9</td>\n",
       "      <td>2012-10-01</td>\n",
       "      <td>2012-10-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.125477</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.217908</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>10</td>\n",
       "      <td>2012-11-01</td>\n",
       "      <td>2012-11-30 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.217556</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.280111</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>11</td>\n",
       "      <td>2012-12-01</td>\n",
       "      <td>2012-12-31 23:00:00</td>\n",
       "      <td>hum</td>\n",
       "      <td>0.096502</td>\n",
       "      <td>0.310789</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.187856</td>\n",
       "      <td>0.345842</td>\n",
       "      <td>(0.0, 100.0)</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    chunk chunk_start           chunk_end feature  ks_statistic  threshold_ks  \\\n",
       "0       0  2012-01-11 2012-01-31 23:00:00    temp      0.490175      0.682966   \n",
       "1       1  2012-02-01 2012-02-29 23:00:00    temp      0.477663      0.682966   \n",
       "2       2  2012-03-01 2012-03-31 23:00:00    temp      0.232412      0.682966   \n",
       "3       3  2012-04-01 2012-04-30 23:00:00    temp      0.217000      0.682966   \n",
       "4       4  2012-05-01 2012-05-31 23:00:00    temp      0.443082      0.682966   \n",
       "5       5  2012-06-01 2012-06-30 23:00:00    temp      0.902111      0.682966   \n",
       "6       6  2012-07-01 2012-07-31 23:00:00    temp      1.000000      0.682966   \n",
       "7       7  2012-08-01 2012-08-31 23:00:00    temp      0.637269      0.682966   \n",
       "8       8  2012-09-01 2012-09-30 23:00:00    temp      0.446389      0.682966   \n",
       "9       9  2012-10-01 2012-10-31 23:00:00    temp      0.537556      0.682966   \n",
       "10     10  2012-11-01 2012-11-30 23:00:00    temp      0.468611      0.682966   \n",
       "11     11  2012-12-01 2012-12-31 23:00:00    temp      0.860731      0.682966   \n",
       "12      0  2012-01-11 2012-01-31 23:00:00     hum      0.130825      0.310789   \n",
       "13      1  2012-02-01 2012-02-29 23:00:00     hum      0.161425      0.310789   \n",
       "14      2  2012-03-01 2012-03-31 23:00:00     hum      0.119387      0.310789   \n",
       "15      3  2012-04-01 2012-04-30 23:00:00     hum      0.278944      0.310789   \n",
       "16      4  2012-05-01 2012-05-31 23:00:00     hum      0.093703      0.310789   \n",
       "17      5  2012-06-01 2012-06-30 23:00:00     hum      0.171722      0.310789   \n",
       "18      6  2012-07-01 2012-07-31 23:00:00     hum      0.103219      0.310789   \n",
       "19      7  2012-08-01 2012-08-31 23:00:00     hum      0.110520      0.310789   \n",
       "20      8  2012-09-01 2012-09-30 23:00:00     hum      0.076111      0.310789   \n",
       "21      9  2012-10-01 2012-10-31 23:00:00     hum      0.125477      0.310789   \n",
       "22     10  2012-11-01 2012-11-30 23:00:00     hum      0.217556      0.310789   \n",
       "23     11  2012-12-01 2012-12-31 23:00:00     hum      0.096502      0.310789   \n",
       "\n",
       "    chi2_statistic  threshold_chi2  jensen_shannon  threshold_js  \\\n",
       "0              NaN             NaN        0.546958      0.689223   \n",
       "1              NaN             NaN        0.523748      0.689223   \n",
       "2              NaN             NaN        0.373938      0.689223   \n",
       "3              NaN             NaN        0.455947      0.689223   \n",
       "4              NaN             NaN        0.539446      0.689223   \n",
       "5              NaN             NaN        0.877304      0.689223   \n",
       "6              NaN             NaN        1.000000      0.689223   \n",
       "7              NaN             NaN        0.652528      0.689223   \n",
       "8              NaN             NaN        0.518331      0.689223   \n",
       "9              NaN             NaN        0.863793      0.689223   \n",
       "10             NaN             NaN        0.562611      0.689223   \n",
       "11             NaN             NaN        0.843966      0.689223   \n",
       "12             NaN             NaN        0.152290      0.345842   \n",
       "13             NaN             NaN        0.199334      0.345842   \n",
       "14             NaN             NaN        0.150733      0.345842   \n",
       "15             NaN             NaN        0.328472      0.345842   \n",
       "16             NaN             NaN        0.205141      0.345842   \n",
       "17             NaN             NaN        0.240059      0.345842   \n",
       "18             NaN             NaN        0.178075      0.345842   \n",
       "19             NaN             NaN        0.196713      0.345842   \n",
       "20             NaN             NaN        0.196889      0.345842   \n",
       "21             NaN             NaN        0.217908      0.345842   \n",
       "22             NaN             NaN        0.280111      0.345842   \n",
       "23             NaN             NaN        0.187856      0.345842   \n",
       "\n",
       "                reference_range  is_out_of_range  drift_ks_statistic  \\\n",
       "0   (0.8200000000000001, 39.36)            False               False   \n",
       "1   (0.8200000000000001, 39.36)            False               False   \n",
       "2   (0.8200000000000001, 39.36)            False               False   \n",
       "3   (0.8200000000000001, 39.36)            False               False   \n",
       "4   (0.8200000000000001, 39.36)            False               False   \n",
       "5   (0.8200000000000001, 39.36)             True                True   \n",
       "6   (0.8200000000000001, 39.36)             True                True   \n",
       "7   (0.8200000000000001, 39.36)            False               False   \n",
       "8   (0.8200000000000001, 39.36)            False               False   \n",
       "9   (0.8200000000000001, 39.36)            False               False   \n",
       "10  (0.8200000000000001, 39.36)            False               False   \n",
       "11  (0.8200000000000001, 39.36)             True                True   \n",
       "12                 (0.0, 100.0)            False               False   \n",
       "13                 (0.0, 100.0)            False               False   \n",
       "14                 (0.0, 100.0)            False               False   \n",
       "15                 (0.0, 100.0)            False               False   \n",
       "16                 (0.0, 100.0)            False               False   \n",
       "17                 (0.0, 100.0)            False               False   \n",
       "18                 (0.0, 100.0)            False               False   \n",
       "19                 (0.0, 100.0)            False               False   \n",
       "20                 (0.0, 100.0)            False               False   \n",
       "21                 (0.0, 100.0)            False               False   \n",
       "22                 (0.0, 100.0)            False               False   \n",
       "23                 (0.0, 100.0)            False               False   \n",
       "\n",
       "    drift_chi2_statistic  drift_js  drift_detected  \n",
       "0                  False     False           False  \n",
       "1                  False     False           False  \n",
       "2                  False     False           False  \n",
       "3                  False     False           False  \n",
       "4                  False     False           False  \n",
       "5                  False      True            True  \n",
       "6                  False      True            True  \n",
       "7                  False     False           False  \n",
       "8                  False     False           False  \n",
       "9                  False      True            True  \n",
       "10                 False     False           False  \n",
       "11                 False      True            True  \n",
       "12                 False     False           False  \n",
       "13                 False     False           False  \n",
       "14                 False     False           False  \n",
       "15                 False     False           False  \n",
       "16                 False     False           False  \n",
       "17                 False     False           False  \n",
       "18                 False     False           False  \n",
       "19                 False     False           False  \n",
       "20                 False     False           False  \n",
       "21                 False     False           False  \n",
       "22                 False     False           False  \n",
       "23                 False     False           False  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Drift detailed results\n",
    "# ==============================================================================\n",
    "drift_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "6183f773",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>feature</th>\n",
       "      <th>n_chunks_with_drift</th>\n",
       "      <th>pct_chunks_with_drift</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>hum</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>temp</td>\n",
       "      <td>4</td>\n",
       "      <td>33.333333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  feature  n_chunks_with_drift  pct_chunks_with_drift\n",
       "0     hum                    0               0.000000\n",
       "1    temp                    4              33.333333"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Drift summary\n",
    "# ==============================================================================\n",
    "drift_summary"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0bb99612",
   "metadata": {},
   "source": [
    "As expected, the detector identifies drift in the modified new data, while no drift is detected in unaltered data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "3ffef579",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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n2pvT63W7UC/EMyIviRnRdkMd7goUmp+cvVGpJjx5L5lem+8iMyL2H9w85PP/2oshsYpsfjCqySiRC54YZpHXBAbI2seVmFrV4tlZJts0xnbLSrLWZTaVLvdorCMWrQn6cSUy2ny4j61qN1ekTo+Ndieai/n1x5BSPH0xs2EjIuplTfu2eDqa7XsUdAhWucCv/vTYc9zD5Rn8Cd7lsBklJBllVOz5+Lnh90TgyKjYuSFDGK2FCUxB/DtO9ZnyYmIiIiItJ6+0Oxht7q3978Pdg/EU0wmnDhzAY0b1raUialrGjesg6MnOM83EREREWkjRRFoW91N8770PLy+wKamfLN0I6ZPGIzjpy/gz1Ni+sK28laxK7+3vlsTEREREZFaTDodpnkEwSs9DeEuxjwH4jdtvEY4r3dD1X+RtuKQQHzTjl8R6O+LYX06I6i4P/46+w869x2LO5HRjmiOiIiIiChXflLOJZ7Fw7Llc0pN2WX0LjiBuPDtqi3yh4iIiIjIGXjfv1AzR+Iumnak7iz5REREREQFlPtDk1Nsu6B3e+jZdFsYiBMRERERAQhzyVuyyAyPIAzxKoNzBnd08a6IM3q3PL2egTgREREREUQOeN5ST6J0ehmECzEuenlmPC8YiBMRERER2cHD5iHPioE4EREREdG/cNzgafW3n+LOnbnBQJyIiIiIKI9+NHrLecmVwnKYZzwnDMSJiIiIiOwgrzOnMBAnIiIiIgIQmocz2raywcunJReMG/oQERERETmTrzyCEJsYie0PuPvmgwLxGqbEPLXHQJyIiIiICEC0iwEzPINzVVdnh1QTpqYQEREREeWRrUBcn8c7czIQJyIiIiLK4wWZxwwe2Z7b7OqLvGBqChERERFRLnXzroAqqUk4lGUOcWGlmz9883BWnIE4EREREVEuRbgY5I9NOh0Wegbl9q2YmkJEREREpAUG4kREREREGmAgTkRERESkAQbiREREREQaYCBORERERKQBBuJERERERBpgIE5EREREpAEG4kREREREGmAgTkRERESkAQbiREREREQaYCBORERERKQBBuJERERERBrQIbheuhYNExEREREVZTwjTkRERESkAQbiREREREQaYCBORERERKQBBuJERERERBpgIE5EREREpAEG4kR2EHZsM1o+95TW3SAiKvQ43lJh4tBAfNr4QVg47SNH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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Higlhlight chunks with detected drift\n",
    "# ==============================================================================\n",
    "set_dark_theme()\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "data_train.loc[:, 'temp'].plot(ax=ax, label='Train')\n",
    "data_new_drift.loc[:, 'temp'].plot(ax=ax, label='New data with drift', color='red')\n",
    "data_new.loc[:, 'temp'].plot(ax=ax, label='New data', color='green')\n",
    "ax.axhline(data_train['temp'].max(), color='white', linestyle=':', label='Max Train')\n",
    "ax.axhline(data_train['temp'].min(), color='white', linestyle=':', label='Min Train')\n",
    "for row in drift_results.query('drift_detected == True').itertuples():\n",
    "    chunk_start = row.chunk_start\n",
    "    chunk_end = row.chunk_end\n",
    "    drift_detected = row.drift_detected\n",
    "    if drift_detected:\n",
    "        ax.axvspan(chunk_start, chunk_end, color='red', alpha=0.3, label='Drift detected')\n",
    "\n",
    "# Remove repetitive labels in legend\n",
    "handles, labels = ax.get_legend_handles_labels()\n",
    "by_label = dict(zip(labels, handles))\n",
    "ax.legend(by_label.values(), by_label.keys());"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fc678f91",
   "metadata": {},
   "source": [
    "`PopulationDriftDetector` can be used with multiple time series simultaneously, each one with its own features. In this case, the input data must be a pandas DataFrame with a MultiIndex, where the first level is the series identifier, and the second level corresponds to the temporal index."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ce55adbe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>series</th>\n",
       "      <th>date_time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">series_1</th>\n",
       "      <th>2011-01-01 00:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>81.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 01:00:00</th>\n",
       "      <td>9.02</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 02:00:00</th>\n",
       "      <td>9.02</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 03:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 04:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">series_3</th>\n",
       "      <th>2012-12-31 19:00:00</th>\n",
       "      <td>10.66</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-31 20:00:00</th>\n",
       "      <td>10.66</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-31 21:00:00</th>\n",
       "      <td>10.66</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-31 22:00:00</th>\n",
       "      <td>10.66</td>\n",
       "      <td>56.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-12-31 23:00:00</th>\n",
       "      <td>10.66</td>\n",
       "      <td>65.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>52632 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                               temp   hum\n",
       "series   date_time                       \n",
       "series_1 2011-01-01 00:00:00   9.84  81.0\n",
       "         2011-01-01 01:00:00   9.02  80.0\n",
       "         2011-01-01 02:00:00   9.02  80.0\n",
       "         2011-01-01 03:00:00   9.84  75.0\n",
       "         2011-01-01 04:00:00   9.84  75.0\n",
       "...                             ...   ...\n",
       "series_3 2012-12-31 19:00:00  10.66  60.0\n",
       "         2012-12-31 20:00:00  10.66  60.0\n",
       "         2012-12-31 21:00:00  10.66  60.0\n",
       "         2012-12-31 22:00:00  10.66  56.0\n",
       "         2012-12-31 23:00:00  10.66  65.0\n",
       "\n",
       "[52632 rows x 2 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Multi-series data\n",
    "# ==============================================================================\n",
    "data_multiseries = pd.concat(\n",
    "    [\n",
    "        data.assign(series='series_1'),\n",
    "        data.assign(series='series_2'),\n",
    "        data.assign(series='series_3')\n",
    "    ]\n",
    ").set_index('series', append=True).swaplevel(0,1)\n",
    "display(data_multiseries)\n",
    "\n",
    "# Split train/test per series\n",
    "data_multiseries_train = (\n",
    "    data_multiseries\n",
    "    .groupby(level='series', group_keys=False)\n",
    "    .apply(lambda x: x.iloc[:9000])\n",
    ")\n",
    "\n",
    "data_multiseries_new = (\n",
    "    data_multiseries\n",
    "    .groupby(level='series', group_keys=False)\n",
    "    .apply(lambda x: x.iloc[9000:])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "3e4b07c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <style>\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 {\n",
       "            font-family: 'Arial', sans-serif;\n",
       "            font-size: 0.9em;\n",
       "            color: #333333;\n",
       "            border: 1px solid #ddd;\n",
       "            background-color: #f0f8ff;\n",
       "            padding: 5px 15px;\n",
       "            border-radius: 8px;\n",
       "            max-width: 600px;\n",
       "            #margin: auto;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 h2 {\n",
       "            font-size: 1.5em;\n",
       "            color: #222222;\n",
       "            border-bottom: 2px solid #ddd;\n",
       "            padding-bottom: 5px;\n",
       "            margin-bottom: 15px;\n",
       "            margin-top: 5px;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 details {\n",
       "            margin: 10px 0;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 summary {\n",
       "            font-weight: bold;\n",
       "            font-size: 1.1em;\n",
       "            color: #000000;\n",
       "            cursor: pointer;\n",
       "            margin-bottom: 5px;\n",
       "            background-color: #b3dbfd;\n",
       "            padding: 5px;\n",
       "            border-radius: 5px;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 summary:hover {\n",
       "            color: #000000;\n",
       "            background-color: #e0e0e0;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 ul {\n",
       "            font-family: 'Courier New', monospace;\n",
       "            list-style-type: none;\n",
       "            padding-left: 20px;\n",
       "            margin: 10px 0;\n",
       "            line-height: normal;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 li {\n",
       "            margin: 5px 0;\n",
       "            font-family: 'Courier New', monospace;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 li strong {\n",
       "            font-weight: bold;\n",
       "            color: #444444;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 li::before {\n",
       "            content: \"- \";\n",
       "            color: #666666;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 a {\n",
       "            color: #001633;\n",
       "            text-decoration: none;\n",
       "        }\n",
       "        .container-51a44d701fc94d76aa2d002e90e1f5c6 a:hover {\n",
       "            color: #359ccb; \n",
       "        }\n",
       "    </style>\n",
       "    \n",
       "        <div class=\"container-51a44d701fc94d76aa2d002e90e1f5c6\">\n",
       "            <p style=\"font-size: 1.5em; font-weight: bold; margin-block-start: 0.83em; margin-block-end: 0.83em;\">PopulationDriftDetector</p>\n",
       "            <details>\n",
       "                <summary>General Information</summary>\n",
       "                <ul>\n",
       "                    <li><strong>Fitted features:</strong> {'series_1': ['temp', 'hum'], 'series_2': ['temp', 'hum'], 'series_3': ['temp', 'hum']}</li>\n",
       "                    <li><strong>Is fitted:</strong> True</li>\n",
       "                </ul>\n",
       "            </details>\n",
       "            <p>\n",
       "                <a href=\"https://skforecast.org/0.19.0/api/drift_detection.html#skforecast.drift_detection._population_drift.PopulationDriftDetector\">&#128712 <strong>API Reference</strong></a>\n",
       "                &nbsp;&nbsp;\n",
       "                <a href=\"https://skforecast.org/0.19.0/user_guides/drift-detection.html\">&#128462 <strong>User Guide</strong></a>\n",
       "            </p>\n",
       "        </div>\n",
       "        "
      ],
      "text/plain": [
       "======================= \n",
       "PopulationDriftDetector \n",
       "======================= \n",
       "Fitted features = {'series_1': ['temp', 'hum'], 'series_2': ['temp', 'hum'], 'series_3': ['temp', 'hum']} \n",
       "Is fitted       = True"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "detector = PopulationDriftDetector(\n",
    "    chunk_size='ME',            \n",
    "    threshold=0.95\n",
    ")\n",
    "detector.fit(data_multiseries_train)\n",
    "detector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "9a17016e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>series_id</th>\n",
       "      <th>feature</th>\n",
       "      <th>n_chunks_with_drift</th>\n",
       "      <th>pct_chunks_with_drift</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>series_1</td>\n",
       "      <td>hum</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>series_1</td>\n",
       "      <td>temp</td>\n",
       "      <td>2</td>\n",
       "      <td>16.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>series_2</td>\n",
       "      <td>hum</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>series_2</td>\n",
       "      <td>temp</td>\n",
       "      <td>2</td>\n",
       "      <td>16.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>series_3</td>\n",
       "      <td>hum</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>series_3</td>\n",
       "      <td>temp</td>\n",
       "      <td>2</td>\n",
       "      <td>16.666667</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  series_id feature  n_chunks_with_drift  pct_chunks_with_drift\n",
       "0  series_1     hum                    0               0.000000\n",
       "1  series_1    temp                    2              16.666667\n",
       "2  series_2     hum                    0               0.000000\n",
       "3  series_2    temp                    2              16.666667\n",
       "4  series_3     hum                    0               0.000000\n",
       "5  series_3    temp                    2              16.666667"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drift_results, drift_summary = detector.predict(data_multiseries_new)\n",
    "drift_summary"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3de06aef",
   "metadata": {},
   "source": [
    "## Drift detection during prediction\n",
    "\n",
    "Skforecast provides the class [`RangeDriftDetector`](../api/drift_detection.html#skforecast.drift_detection.drift_detection.RangeDriftDetector) to detect **covariate drift** in both single and multiple time series, as well as in exogenous variables. \n",
    "\n",
    "The detector checks whether the input data (lags and exogenous variables) used to **predict new values** fall within the range of the data used to train the model. \n",
    "\n",
    "Its API follows the same design as the forecasters: \n",
    "\n",
    "+ The data used to train a forecaster can also be used to fit the [`RangeDriftDetector`](../api/drift_detection.html#skforecast.drift_detection.drift_detection.RangeDriftDetector).\n",
    "\n",
    "+ The data passed to the forecaster's `predict` method can be also passed to the `RangeDriftDetector`'s `predict` method to check for drift in the input data before making predictions. \n",
    "\n",
    "+ If drift is detected, users should analyze its cause and consider whether the model is still appropriate for making predictions with the new data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "39a61044",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Libraries\n",
    "# ==============================================================================\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.ensemble import HistGradientBoostingRegressor\n",
    "from skforecast.datasets import fetch_dataset\n",
    "from skforecast.recursive import ForecasterRecursive\n",
    "from skforecast.drift_detection import RangeDriftDetector"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dc14e532",
   "metadata": {},
   "source": [
    "### Detecting out-of-range values in a single series\n",
    "\n",
    "The `RangeDriftDetector` checks whether the values of a time series remain consistent with the data seen during training.\n",
    "\n",
    "+ For **numeric variables**, it verifies that each new value falls **within the minimum and maximum range** of the training data. Values outside this range are flagged as potential drift.\n",
    "\n",
    "+ For **categorical variables**, it checks whether each new category was **observed during training**. Unseen categories are flagged as potential drift.\n",
    "\n",
    "This mechanism allows you to quickly identify when the model is receiving inputs that differ from those it was trained on, helping you decide whether to **retrain the model** or **adjust preprocessing**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "cc5647b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2020-01-01     8.021757\n",
       "2020-01-02     9.264427\n",
       "2020-01-03    12.575851\n",
       "2020-01-04    10.387949\n",
       "2020-01-05    11.840462\n",
       "Freq: D, Name: y, dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>exog_1</th>\n",
       "      <th>exog_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>8.968465</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>13.316227</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>9.405475</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-04</th>\n",
       "      <td>7.233246</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-05</th>\n",
       "      <td>9.437591</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               exog_1 exog_2\n",
       "2020-01-01   8.968465      B\n",
       "2020-01-02  13.316227      B\n",
       "2020-01-03   9.405475      A\n",
       "2020-01-04   7.233246      A\n",
       "2020-01-05   9.437591      A"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Simulated data\n",
    "# ==============================================================================\n",
    "rgn = np.random.default_rng(123)\n",
    "y_train = pd.Series(\n",
    "    rgn.normal(loc=10, scale=2, size=100),\n",
    "    index=pd.date_range(start=\"2020-01-01\", periods=100),\n",
    "    name=\"y\",\n",
    ")\n",
    "exog_train = pd.DataFrame(\n",
    "    {\n",
    "        \"exog_1\": rgn.normal(loc=10, scale=2, size=100),\n",
    "        \"exog_2\": rgn.choice([\"A\", \"B\", \"C\", \"D\", \"E\"], size=100),\n",
    "    },\n",
    "    index=y_train.index,\n",
    ")\n",
    "\n",
    "display(y_train.head())\n",
    "display(exog_train.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "cdd66aa1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <style>\n",
       "        .container-10abc695b2624e93b8293042019997fd {\n",
       "            font-family: 'Arial', sans-serif;\n",
       "            font-size: 0.9em;\n",
       "            color: #333333;\n",
       "            border: 1px solid #ddd;\n",
       "            background-color: #f0f8ff;\n",
       "            padding: 5px 15px;\n",
       "            border-radius: 8px;\n",
       "            max-width: 600px;\n",
       "            #margin: auto;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd h2 {\n",
       "            font-size: 1.5em;\n",
       "            color: #222222;\n",
       "            border-bottom: 2px solid #ddd;\n",
       "            padding-bottom: 5px;\n",
       "            margin-bottom: 15px;\n",
       "            margin-top: 5px;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd details {\n",
       "            margin: 10px 0;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd summary {\n",
       "            font-weight: bold;\n",
       "            font-size: 1.1em;\n",
       "            color: #000000;\n",
       "            cursor: pointer;\n",
       "            margin-bottom: 5px;\n",
       "            background-color: #b3dbfd;\n",
       "            padding: 5px;\n",
       "            border-radius: 5px;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd summary:hover {\n",
       "            color: #000000;\n",
       "            background-color: #e0e0e0;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd ul {\n",
       "            font-family: 'Courier New', monospace;\n",
       "            list-style-type: none;\n",
       "            padding-left: 20px;\n",
       "            margin: 10px 0;\n",
       "            line-height: normal;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd li {\n",
       "            margin: 5px 0;\n",
       "            font-family: 'Courier New', monospace;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd li strong {\n",
       "            font-weight: bold;\n",
       "            color: #444444;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd li::before {\n",
       "            content: \"- \";\n",
       "            color: #666666;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd a {\n",
       "            color: #001633;\n",
       "            text-decoration: none;\n",
       "        }\n",
       "        .container-10abc695b2624e93b8293042019997fd a:hover {\n",
       "            color: #359ccb; \n",
       "        }\n",
       "    </style>\n",
       "    \n",
       "        <div class=\"container-10abc695b2624e93b8293042019997fd\">\n",
       "            <p style=\"font-size: 1.5em; font-weight: bold; margin-block-start: 0.83em; margin-block-end: 0.83em;\">RangeDriftDetector</p>\n",
       "            <details open>\n",
       "                <summary>General Information</summary>\n",
       "                <ul>\n",
       "                    <li><strong>Fitted series:</strong> y</li>\n",
       "                    <li><strong>Fitted exogenous:</strong> exog_1, exog_2</li>\n",
       "                    <li><strong>Series-specific exogenous:</strong> False</li>\n",
       "                    <li><strong>Is fitted:</strong> True</li>\n",
       "                </ul>\n",
       "            </details>\n",
       "            <details>\n",
       "                <summary>Series value ranges</summary>\n",
       "                <ul>\n",
       "                    {'y': (5.5850578036003915, 14.579819894629157)}\n",
       "                </ul>\n",
       "            </details>\n",
       "            <details>\n",
       "                <summary>Exogenous value ranges</summary>\n",
       "                <ul>\n",
       "                    {'exog_1': (4.5430286262543085, 14.531041199734418), 'exog_2': {'C', 'B', 'E', 'A', 'D'}}\n",
       "                </ul>\n",
       "            </details>\n",
       "            <p>\n",
       "                <a href=\"https://skforecast.org/0.19.0/api/drift_detection.html#skforecast.drift_detection._range_drift.RangeDriftDetector\">&#128712 <strong>API Reference</strong></a>\n",
       "                &nbsp;&nbsp;\n",
       "                <a href=\"https://skforecast.org/0.19.0/user_guides/drift-detection.html\">&#128462 <strong>User Guide</strong></a>\n",
       "            </p>\n",
       "        </div>\n",
       "        "
      ],
      "text/plain": [
       "================== \n",
       "RangeDriftDetector \n",
       "================== \n",
       "Fitted series          = y \n",
       "Series value ranges    = {'y': (5.5850578036003915, 14.579819894629157)} \n",
       "Fitted exogenous       = exog_1, exog_2 \n",
       "Exogenous value ranges = {'exog_1': (4.5430286262543085, 14.531041199734418), 'exog_2': {'C', 'B', 'E', 'A', 'D'}} \n",
       "Series-specific exog   = False \n",
       "Is fitted              = True"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train RangeDriftDetector\n",
    "# ==============================================================================\n",
    "detector = RangeDriftDetector()\n",
    "detector.fit(y=y_train, exog=exog_train)\n",
    "detector"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a2789e7",
   "metadata": {},
   "source": [
    "Lets assume the model is deployed in production and new data is being used to forecast future values. We simulate a covariate drift in the target series and in the exogenous variables to illustrate how to use the `RangeDriftDetector` class to detect it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8bb3894a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╭────────────────────────────── FeatureOutOfRangeWarning ──────────────────────────────╮</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'y' has values outside the range seen during training [5.58506, 14.57982]. This may  <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> affect the accuracy of the predictions.                                              <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>                                                                                      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Category : skforecast.exceptions.FeatureOutOfRangeWarning                            <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Location :                                                                           <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> etection\\_range_drift.py:283                                                         <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╰──────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[38;5;214m╭─\u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m FeatureOutOfRangeWarning \u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m─╮\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'y' has values outside the range seen during training [5.58506, 14.57982]. This may  \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m affect the accuracy of the predictions.                                              \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m                                                                                      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Category : skforecast.exceptions.FeatureOutOfRangeWarning                            \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Location :                                                                           \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m etection\\_range_drift.py:283                                                         \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m╰──────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╭────────────────────────────── FeatureOutOfRangeWarning ──────────────────────────────╮</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'exog_1' has values outside the range seen during training [4.54303, 14.53104]. This <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> may affect the accuracy of the predictions.                                          <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>                                                                                      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Category : skforecast.exceptions.FeatureOutOfRangeWarning                            <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Location :                                                                           <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> etection\\_range_drift.py:283                                                         <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╰──────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[38;5;214m╭─\u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m FeatureOutOfRangeWarning \u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m─╮\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'exog_1' has values outside the range seen during training [4.54303, 14.53104]. This \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m may affect the accuracy of the predictions.                                          \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m                                                                                      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Category : skforecast.exceptions.FeatureOutOfRangeWarning                            \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Location :                                                                           \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m etection\\_range_drift.py:283                                                         \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m╰──────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╭────────────────────────────── FeatureOutOfRangeWarning ──────────────────────────────╮</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'exog_2' has values not seen during training. Seen values: {'C', 'B', 'E', 'A',      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'D'}. This may affect the accuracy of the predictions.                               <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>                                                                                      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Category : skforecast.exceptions.FeatureOutOfRangeWarning                            <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Location :                                                                           <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> etection\\_range_drift.py:283                                                         <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╰──────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[38;5;214m╭─\u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m FeatureOutOfRangeWarning \u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m─╮\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'exog_2' has values not seen during training. Seen values: {'C', 'B', 'E', 'A',      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'D'}. This may affect the accuracy of the predictions.                               \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m                                                                                      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Category : skforecast.exceptions.FeatureOutOfRangeWarning                            \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Location :                                                                           \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m etection\\_range_drift.py:283                                                         \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m╰──────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">╭───────────────────────────── <span style=\"font-weight: bold\">Out-of-range summary</span> ──────────────────────────────╮\n",
       "│ <span style=\"font-weight: bold\">Series:</span>                                                                         │\n",
       "│ 'y' has values outside the observed range [5.58506, 14.57982].                  │\n",
       "│                                                                                 │\n",
       "│ <span style=\"font-weight: bold\">Exogenous Variables:</span>                                                            │\n",
       "│ 'exog_1' has values outside the observed range [4.54303, 14.53104].             │\n",
       "│ 'exog_2' has values not seen during training. Seen values: {'C', 'B', 'E', 'A', │\n",
       "│ 'D'}.                                                                           │\n",
       "╰─────────────────────────────────────────────────────────────────────────────────╯\n",
       "</pre>\n"
      ],
      "text/plain": [
       "╭───────────────────────────── \u001b[1mOut-of-range summary\u001b[0m ──────────────────────────────╮\n",
       "│ \u001b[1mSeries:\u001b[0m                                                                         │\n",
       "│ 'y' has values outside the observed range [5.58506, 14.57982].                  │\n",
       "│                                                                                 │\n",
       "│ \u001b[1mExogenous Variables:\u001b[0m                                                            │\n",
       "│ 'exog_1' has values outside the observed range [4.54303, 14.53104].             │\n",
       "│ 'exog_2' has values not seen during training. Seen values: {'C', 'B', 'E', 'A', │\n",
       "│ 'D'}.                                                                           │\n",
       "╰─────────────────────────────────────────────────────────────────────────────────╯\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Out of range detected  : True\n",
      "Series out of range    : ['y']\n",
      "Exogenous out of range : ['exog_1', 'exog_2']\n"
     ]
    }
   ],
   "source": [
    "# Prediction with drifted data\n",
    "# ==============================================================================\n",
    "last_window = pd.Series(\n",
    "    [6.6, 7.5, 100, 9.3, 10.2], name=\"y\"\n",
    ")  # Value 100 is out of range\n",
    "exog_predict = pd.DataFrame(\n",
    "    {\n",
    "        \"exog_1\": [8, 9, 10, 70, 12],         # Value 70 is out of range\n",
    "        \"exog_2\": [\"A\", \"B\", \"C\", \"D\", \"W\"],  # Value 'W' is out of range\n",
    "    }\n",
    ")\n",
    "\n",
    "flag_out_of_range, series_out_of_range, exog_out_of_range = detector.predict(\n",
    "    last_window       = last_window,\n",
    "    exog              = exog_predict,\n",
    "    verbose           = True,\n",
    "    suppress_warnings = False\n",
    ")\n",
    "\n",
    "print(\"Out of range detected  :\", flag_out_of_range)\n",
    "print(\"Series out of range    :\", series_out_of_range)\n",
    "print(\"Exogenous out of range :\", exog_out_of_range)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bed672e7",
   "metadata": {},
   "source": [
    "### Detecting out-of-range values in multiple series\n",
    "\n",
    "The same process applies when modeling **multiple time series**.\n",
    "\n",
    "+ For each series, the `RangeDriftDetector` checks whether the new values remain within the range of the training data.\n",
    "\n",
    "+ If **exogenous variables** are included, they are checked **grouped by series**, ensuring that drift is detected in the correct context.\n",
    "\n",
    "This allows you to monitor drift at the **per-series level**, making it easier to spot issues in specific series without being misled by aggregated results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "c8830ed3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>series_id</th>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">series_1</th>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">series_2</th>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">series_3</th>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      values\n",
       "series_id datetime          \n",
       "series_1  2020-01-01       1\n",
       "          2020-01-02       2\n",
       "          2020-01-03       3\n",
       "series_2  2020-01-01      10\n",
       "          2020-01-02      20\n",
       "          2020-01-03      30\n",
       "series_3  2020-01-01     100\n",
       "          2020-01-02     200\n",
       "          2020-01-03     300"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>exog_1</th>\n",
       "      <th>exog_2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>series_id</th>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">series_1</th>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>5.0</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>6.0</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>7.0</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">series_2</th>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>15.0</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>25.0</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>35.0</td>\n",
       "      <td>F</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">series_3</th>\n",
       "      <th>2020-01-01</th>\n",
       "      <td>150.0</td>\n",
       "      <td>G</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>250.0</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>350.0</td>\n",
       "      <td>I</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      exog_1 exog_2\n",
       "series_id datetime                 \n",
       "series_1  2020-01-01     5.0      A\n",
       "          2020-01-02     6.0      B\n",
       "          2020-01-03     7.0      C\n",
       "series_2  2020-01-01    15.0      D\n",
       "          2020-01-02    25.0      E\n",
       "          2020-01-03    35.0      F\n",
       "series_3  2020-01-01   150.0      G\n",
       "          2020-01-02   250.0      H\n",
       "          2020-01-03   350.0      I"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Simulated data - Multiple time series\n",
    "# ==============================================================================\n",
    "idx = pd.MultiIndex.from_product(\n",
    "    [\n",
    "        [\"series_1\", \"series_2\", \"series_3\"],\n",
    "        pd.date_range(start=\"2020-01-01\", periods=3),\n",
    "    ],\n",
    "    names=[\"series_id\", \"datetime\"],\n",
    ")\n",
    "series_train = pd.DataFrame(\n",
    "    {\"values\": [1, 2, 3, 10, 20, 30, 100, 200, 300]}, index=idx\n",
    ")\n",
    "exog_train = pd.DataFrame(\n",
    "    {\n",
    "        \"exog_1\": [5.0, 6.0, 7.0, 15.0, 25.0, 35.0, 150.0, 250.0, 350.0],\n",
    "        \"exog_2\": [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\"],\n",
    "    },\n",
    "    index=idx,\n",
    ")\n",
    "\n",
    "display(series_train)\n",
    "display(exog_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6f997487",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <style>\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 {\n",
       "            font-family: 'Arial', sans-serif;\n",
       "            font-size: 0.9em;\n",
       "            color: #333333;\n",
       "            border: 1px solid #ddd;\n",
       "            background-color: #f0f8ff;\n",
       "            padding: 5px 15px;\n",
       "            border-radius: 8px;\n",
       "            max-width: 600px;\n",
       "            #margin: auto;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 h2 {\n",
       "            font-size: 1.5em;\n",
       "            color: #222222;\n",
       "            border-bottom: 2px solid #ddd;\n",
       "            padding-bottom: 5px;\n",
       "            margin-bottom: 15px;\n",
       "            margin-top: 5px;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 details {\n",
       "            margin: 10px 0;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 summary {\n",
       "            font-weight: bold;\n",
       "            font-size: 1.1em;\n",
       "            color: #000000;\n",
       "            cursor: pointer;\n",
       "            margin-bottom: 5px;\n",
       "            background-color: #b3dbfd;\n",
       "            padding: 5px;\n",
       "            border-radius: 5px;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 summary:hover {\n",
       "            color: #000000;\n",
       "            background-color: #e0e0e0;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 ul {\n",
       "            font-family: 'Courier New', monospace;\n",
       "            list-style-type: none;\n",
       "            padding-left: 20px;\n",
       "            margin: 10px 0;\n",
       "            line-height: normal;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 li {\n",
       "            margin: 5px 0;\n",
       "            font-family: 'Courier New', monospace;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 li strong {\n",
       "            font-weight: bold;\n",
       "            color: #444444;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 li::before {\n",
       "            content: \"- \";\n",
       "            color: #666666;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 a {\n",
       "            color: #001633;\n",
       "            text-decoration: none;\n",
       "        }\n",
       "        .container-a20b666c0e784cee9c05c77a1a938010 a:hover {\n",
       "            color: #359ccb; \n",
       "        }\n",
       "    </style>\n",
       "    \n",
       "        <div class=\"container-a20b666c0e784cee9c05c77a1a938010\">\n",
       "            <p style=\"font-size: 1.5em; font-weight: bold; margin-block-start: 0.83em; margin-block-end: 0.83em;\">RangeDriftDetector</p>\n",
       "            <details open>\n",
       "                <summary>General Information</summary>\n",
       "                <ul>\n",
       "                    <li><strong>Fitted series:</strong> series_1, series_2, series_3</li>\n",
       "                    <li><strong>Fitted exogenous:</strong> exog_1, exog_2</li>\n",
       "                    <li><strong>Series-specific exogenous:</strong> True</li>\n",
       "                    <li><strong>Is fitted:</strong> True</li>\n",
       "                </ul>\n",
       "            </details>\n",
       "            <details>\n",
       "                <summary>Series value ranges</summary>\n",
       "                <ul>\n",
       "                    {'series_1': (1.0, 3.0), 'series_2': (10.0, 30.0), 'series_3': (100.0, 300.0)}\n",
       "                </ul>\n",
       "            </details>\n",
       "            <details>\n",
       "                <summary>Exogenous value ranges</summary>\n",
       "                <ul>\n",
       "                    {'series_1': {'exog_1': (5.0, 7.0), 'exog_2': {'B', 'C', 'A'}}, 'series_2': {'exog_1': (15.0, 35.0), 'exog_2': {'D', 'F', 'E'}}, 'series_3': {'exog_1': (150.0, 350.0), 'exog_2': {'I', 'G', 'H'}}}\n",
       "                </ul>\n",
       "            </details>\n",
       "            <p>\n",
       "                <a href=\"https://skforecast.org/0.19.0/api/drift_detection.html#skforecast.drift_detection._range_drift.RangeDriftDetector\">&#128712 <strong>API Reference</strong></a>\n",
       "                &nbsp;&nbsp;\n",
       "                <a href=\"https://skforecast.org/0.19.0/user_guides/drift-detection.html\">&#128462 <strong>User Guide</strong></a>\n",
       "            </p>\n",
       "        </div>\n",
       "        "
      ],
      "text/plain": [
       "================== \n",
       "RangeDriftDetector \n",
       "================== \n",
       "Fitted series          = series_1, series_2, series_3 \n",
       "Series value ranges    = {'series_1': (1.0, 3.0), 'series_2': (10.0, 30.0), 'series_3': (100.0, 300.0)} \n",
       "Fitted exogenous       = exog_1, exog_2 \n",
       "Exogenous value ranges = {'series_1': {'exog_1': (5.0, 7.0), 'exog_2': {'B', 'C', 'A'}}, 'series_2': {'exog_1': (15.0, 35.0), 'exog_2': {'D', 'F', 'E'}}, 'series_3': {'exog_1': (150.0, 350.0), 'exog_2': {'I', 'G', 'H'}}} \n",
       "Series-specific exog   = True \n",
       "Is fitted              = True"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train RangeDriftDetector - Multiple time series\n",
    "# ==============================================================================\n",
    "detector = RangeDriftDetector()\n",
    "detector.fit(series=series_train, exog=exog_train)\n",
    "detector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "b0b33aaf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>series_1</th>\n",
       "      <th>series_2</th>\n",
       "      <th>series_3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-01-02</th>\n",
       "      <td>1.5</td>\n",
       "      <td>100</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-03</th>\n",
       "      <td>2.3</td>\n",
       "      <td>20</td>\n",
       "      <td>200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            series_1  series_2  series_3\n",
       "2020-01-02       1.5       100       110\n",
       "2020-01-03       2.3        20       200"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>exog_1</th>\n",
       "      <th>exog_2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>series_id</th>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">series_1</th>\n",
       "      <th>2020-01-04</th>\n",
       "      <td>5.0</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-05</th>\n",
       "      <td>6.1</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">series_2</th>\n",
       "      <th>2020-01-04</th>\n",
       "      <td>10.0</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-05</th>\n",
       "      <td>70.0</td>\n",
       "      <td>F</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">series_3</th>\n",
       "      <th>2020-01-04</th>\n",
       "      <td>220.0</td>\n",
       "      <td>W</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-01-05</th>\n",
       "      <td>290.0</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      exog_1 exog_2\n",
       "series_id datetime                 \n",
       "series_1  2020-01-04     5.0      A\n",
       "          2020-01-05     6.1      B\n",
       "series_2  2020-01-04    10.0      D\n",
       "          2020-01-05    70.0      F\n",
       "series_3  2020-01-04   220.0      W\n",
       "          2020-01-05   290.0      E"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Prediction with drifted data - Multiple time series\n",
    "# ==============================================================================\n",
    "last_window = pd.DataFrame(\n",
    "    {\n",
    "        \"series_1\": np.array([1.5, 2.3]),\n",
    "        \"series_2\": np.array([100, 20]),  # Value 100 is out of range\n",
    "        \"series_3\": np.array([110, 200]),\n",
    "    },\n",
    "    index=pd.date_range(start=\"2020-01-02\", periods=2),\n",
    ")\n",
    "\n",
    "idx = pd.MultiIndex.from_product(\n",
    "    [\n",
    "        [\"series_1\", \"series_2\", \"series_3\"],\n",
    "        pd.date_range(start=\"2020-01-04\", periods=2),\n",
    "    ],\n",
    "    names=[\"series_id\", \"datetime\"],\n",
    ")\n",
    "exog_predict = pd.DataFrame(\n",
    "    {\n",
    "        \"exog_1\": [5.0, 6.1, 10, 70, 220, 290], \n",
    "        \"exog_2\": [\"A\", \"B\", \"D\", \"F\", \"W\", \"E\"],\n",
    "    },\n",
    "    index=idx,\n",
    ")\n",
    "\n",
    "display(last_window)\n",
    "display(exog_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "f07f4fab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╭────────────────────────────── FeatureOutOfRangeWarning ──────────────────────────────╮</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'series_2' has values outside the range seen during training [10.00000, 30.00000].   <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> This may affect the accuracy of the predictions.                                     <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>                                                                                      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Category : skforecast.exceptions.FeatureOutOfRangeWarning                            <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Location :                                                                           <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> etection\\_range_drift.py:283                                                         <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╰──────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[38;5;214m╭─\u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m FeatureOutOfRangeWarning \u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m─╮\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'series_2' has values outside the range seen during training [10.00000, 30.00000].   \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m This may affect the accuracy of the predictions.                                     \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m                                                                                      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Category : skforecast.exceptions.FeatureOutOfRangeWarning                            \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Location :                                                                           \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m etection\\_range_drift.py:283                                                         \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m╰──────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╭────────────────────────────── FeatureOutOfRangeWarning ──────────────────────────────╮</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'series_2': 'exog_1' has values outside the range seen during training [15.00000,    <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 35.00000]. This may affect the accuracy of the predictions.                          <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>                                                                                      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Category : skforecast.exceptions.FeatureOutOfRangeWarning                            <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Location :                                                                           <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> etection\\_range_drift.py:283                                                         <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╰──────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[38;5;214m╭─\u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m FeatureOutOfRangeWarning \u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m─╮\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'series_2': 'exog_1' has values outside the range seen during training [15.00000,    \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 35.00000]. This may affect the accuracy of the predictions.                          \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m                                                                                      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Category : skforecast.exceptions.FeatureOutOfRangeWarning                            \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Location :                                                                           \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m etection\\_range_drift.py:283                                                         \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m╰──────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╭────────────────────────────── FeatureOutOfRangeWarning ──────────────────────────────╮</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'series_3': 'exog_2' has values not seen during training. Seen values: {'I', 'G',    <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> 'H'}. This may affect the accuracy of the predictions.                               <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>                                                                                      <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Category : skforecast.exceptions.FeatureOutOfRangeWarning                            <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Location :                                                                           <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> etection\\_range_drift.py:283                                                         <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span> Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        <span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">│</span>\n",
       "<span style=\"color: #ffaf00; text-decoration-color: #ffaf00\">╰──────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[38;5;214m╭─\u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m FeatureOutOfRangeWarning \u001b[0m\u001b[38;5;214m─────────────────────────────\u001b[0m\u001b[38;5;214m─╮\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'series_3': 'exog_2' has values not seen during training. Seen values: {'I', 'G',    \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m 'H'}. This may affect the accuracy of the predictions.                               \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m                                                                                      \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Category : skforecast.exceptions.FeatureOutOfRangeWarning                            \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Location :                                                                           \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m c:\\Users\\jaesc2\\Miniconda3\\envs\\skforecast_py12\\Lib\\site-packages\\skforecast\\drift_d \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m etection\\_range_drift.py:283                                                         \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m│\u001b[0m Suppress : warnings.simplefilter('ignore', category=FeatureOutOfRangeWarning)        \u001b[38;5;214m│\u001b[0m\n",
       "\u001b[38;5;214m╰──────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">╭────────────────────────────── <span style=\"font-weight: bold\">Out-of-range summary</span> ──────────────────────────────╮\n",
       "│ <span style=\"font-weight: bold\">Series:</span>                                                                          │\n",
       "│ 'series_2' has values outside the observed range [10.00000, 30.00000].           │\n",
       "│                                                                                  │\n",
       "│ <span style=\"font-weight: bold\">Exogenous Variables:</span>                                                             │\n",
       "│ 'series_2': 'exog_1' has values outside the observed range [15.00000, 35.00000]. │\n",
       "│ 'series_3': 'exog_2' has values not seen during training. Seen values: {'I',     │\n",
       "│ 'G', 'H'}.                                                                       │\n",
       "╰──────────────────────────────────────────────────────────────────────────────────╯\n",
       "</pre>\n"
      ],
      "text/plain": [
       "╭────────────────────────────── \u001b[1mOut-of-range summary\u001b[0m ──────────────────────────────╮\n",
       "│ \u001b[1mSeries:\u001b[0m                                                                          │\n",
       "│ 'series_2' has values outside the observed range [10.00000, 30.00000].           │\n",
       "│                                                                                  │\n",
       "│ \u001b[1mExogenous Variables:\u001b[0m                                                             │\n",
       "│ 'series_2': 'exog_1' has values outside the observed range [15.00000, 35.00000]. │\n",
       "│ 'series_3': 'exog_2' has values not seen during training. Seen values: {'I',     │\n",
       "│ 'G', 'H'}.                                                                       │\n",
       "╰──────────────────────────────────────────────────────────────────────────────────╯\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Out of range detected  : True\n",
      "Series out of range    : ['series_2']\n",
      "Exogenous out of range : {'series_2': ['exog_1'], 'series_3': ['exog_2']}\n"
     ]
    }
   ],
   "source": [
    "# Prediction with drifted data - Multiple time series\n",
    "# ==============================================================================\n",
    "flag_out_of_range, series_out_of_range, exog_out_of_range = detector.predict(\n",
    "    last_window       = last_window, \n",
    "    exog              = exog_predict, \n",
    "    verbose           = True, \n",
    "    suppress_warnings = False\n",
    ")\n",
    "\n",
    "print(\"Out of range detected  :\", flag_out_of_range)\n",
    "print(\"Series out of range    :\", series_out_of_range)\n",
    "print(\"Exogenous out of range :\", exog_out_of_range)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91de86ef",
   "metadata": {},
   "source": [
    "### Combining RangeDriftDetector with Forecasters\n",
    "\n",
    "When deploying a [**forecaster** in production](../user_guides/forecaster-in-production), it is good practice to **pair it with a drift detector**. This ensures that both are trained on the **same dataset**, allowing the drift detector to verify the **input data** before the forecaster makes predictions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "6383890d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">╭─────────────────────────────────── <span style=\"font-weight: bold\">h2o_exog</span> ────────────────────────────────────╮\n",
       "│ <span style=\"font-weight: bold\">Description:</span>                                                                    │\n",
       "│ Monthly expenditure ($AUD) on corticosteroid drugs that the Australian health   │\n",
       "│ system had between 1991 and 2008. Two additional variables (exog_1, exog_2) are │\n",
       "│ simulated.                                                                      │\n",
       "│                                                                                 │\n",
       "│ <span style=\"font-weight: bold\">Source:</span>                                                                         │\n",
       "│ Hyndman R (2023). fpp3: Data for Forecasting: Principles and Practice (3rd      │\n",
       "│ Edition). http://pkg.robjhyndman.com/fpp3package/,                              │\n",
       "│ https://github.com/robjhyndman/fpp3package, http://OTexts.com/fpp3.             │\n",
       "│                                                                                 │\n",
       "│ <span style=\"font-weight: bold\">URL:</span>                                                                            │\n",
       "│ https://raw.githubusercontent.com/skforecast/skforecast-                        │\n",
       "│ datasets/main/data/h2o_exog.csv                                                 │\n",
       "│                                                                                 │\n",
       "│ <span style=\"font-weight: bold\">Shape:</span> 195 rows x 3 columns                                                     │\n",
       "╰─────────────────────────────────────────────────────────────────────────────────╯\n",
       "</pre>\n"
      ],
      "text/plain": [
       "╭─────────────────────────────────── \u001b[1mh2o_exog\u001b[0m ────────────────────────────────────╮\n",
       "│ \u001b[1mDescription:\u001b[0m                                                                    │\n",
       "│ Monthly expenditure ($AUD) on corticosteroid drugs that the Australian health   │\n",
       "│ system had between 1991 and 2008. Two additional variables (exog_1, exog_2) are │\n",
       "│ simulated.                                                                      │\n",
       "│                                                                                 │\n",
       "│ \u001b[1mSource:\u001b[0m                                                                         │\n",
       "│ Hyndman R (2023). fpp3: Data for Forecasting: Principles and Practice (3rd      │\n",
       "│ Edition). http://pkg.robjhyndman.com/fpp3package/,                              │\n",
       "│ https://github.com/robjhyndman/fpp3package, http://OTexts.com/fpp3.             │\n",
       "│                                                                                 │\n",
       "│ \u001b[1mURL:\u001b[0m                                                                            │\n",
       "│ https://raw.githubusercontent.com/skforecast/skforecast-                        │\n",
       "│ datasets/main/data/h2o_exog.csv                                                 │\n",
       "│                                                                                 │\n",
       "│ \u001b[1mShape:\u001b[0m 195 rows x 3 columns                                                     │\n",
       "╰─────────────────────────────────────────────────────────────────────────────────╯\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>y</th>\n",
       "      <th>exog_1</th>\n",
       "      <th>exog_2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1992-04-01</th>\n",
       "      <td>0.379808</td>\n",
       "      <td>0.958792</td>\n",
       "      <td>1.166029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1992-05-01</th>\n",
       "      <td>0.361801</td>\n",
       "      <td>0.951993</td>\n",
       "      <td>1.117859</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1992-06-01</th>\n",
       "      <td>0.410534</td>\n",
       "      <td>0.952955</td>\n",
       "      <td>1.067942</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   y    exog_1    exog_2\n",
       "datetime                                \n",
       "1992-04-01  0.379808  0.958792  1.166029\n",
       "1992-05-01  0.361801  0.951993  1.117859\n",
       "1992-06-01  0.410534  0.952955  1.067942"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Data\n",
    "# ==============================================================================\n",
    "data = fetch_dataset(name='h2o_exog')\n",
    "data.index.name = 'datetime'\n",
    "data.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "2f452b90",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Train Forecaster and RangeDriftDetector\n",
    "# ==============================================================================\n",
    "steps = 36\n",
    "data_train = data.iloc[:-steps, :]\n",
    "data_test  = data.iloc[-steps:, :]\n",
    "\n",
    "forecaster = ForecasterRecursive(\n",
    "                 estimator = HistGradientBoostingRegressor(random_state=123),\n",
    "                 lags      = 15\n",
    "             )\n",
    "detector = RangeDriftDetector()\n",
    "\n",
    "forecaster.fit(\n",
    "    y    = data_train['y'],\n",
    "    exog = data_train[['exog_1', 'exog_2']]\n",
    ")\n",
    "detector.fit(\n",
    "    series = data_train['y'],\n",
    "    exog   = data_train[['exog_1', 'exog_2']]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "711620a2",
   "metadata": {},
   "source": [
    "If you use the `last_window` stored in the Forecaster, drift detection is unnecessary because it corresponds to the final window of the training data. In [production environments](../user_guides/forecaster-in-production), however, you may supply an **external** `last_window` from a different time period. In that case, drift detection is **recommended**.\n",
    "\n",
    "In the example below, the external `last_window` is identical to the final training window, so no drift will be detected."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "596a5157",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime\n",
       "2004-04-01    0.739986\n",
       "2004-05-01    0.795129\n",
       "2004-06-01    0.856803\n",
       "2004-07-01    1.001593\n",
       "2004-08-01    0.994864\n",
       "2004-09-01    1.134432\n",
       "2004-10-01    1.181011\n",
       "2004-11-01    1.216037\n",
       "2004-12-01    1.257238\n",
       "2005-01-01    1.170690\n",
       "2005-02-01    0.597639\n",
       "2005-03-01    0.652590\n",
       "2005-04-01    0.670505\n",
       "2005-05-01    0.695248\n",
       "2005-06-01    0.842263\n",
       "Freq: MS, Name: y, dtype: float64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Last window (same as forecaster.last_window_)\n",
    "# ==============================================================================\n",
    "last_window = data_train['y'].iloc[-forecaster.max_lag:]\n",
    "last_window"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1f9bba61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">╭───────────────── <span style=\"font-weight: bold\">Out-of-range summary</span> ─────────────────╮\n",
       "│ <span style=\"font-weight: bold\">Series:</span>                                                │\n",
       "│ No series with out-of-range values found.              │\n",
       "│                                                        │\n",
       "│ <span style=\"font-weight: bold\">Exogenous Variables:</span>                                   │\n",
       "│ No exogenous variables with out-of-range values found. │\n",
       "╰────────────────────────────────────────────────────────╯\n",
       "</pre>\n"
      ],
      "text/plain": [
       "╭───────────────── \u001b[1mOut-of-range summary\u001b[0m ─────────────────╮\n",
       "│ \u001b[1mSeries:\u001b[0m                                                │\n",
       "│ No series with out-of-range values found.              │\n",
       "│                                                        │\n",
       "│ \u001b[1mExogenous Variables:\u001b[0m                                   │\n",
       "│ No exogenous variables with out-of-range values found. │\n",
       "╰────────────────────────────────────────────────────────╯\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Check data with RangeDriftDetector and predict with Forecaster\n",
    "# ==============================================================================\n",
    "detector.predict(\n",
    "    last_window       = last_window,\n",
    "    exog              = data_test[['exog_1', 'exog_2']],\n",
    "    verbose           = True,\n",
    "    suppress_warnings = False\n",
    ")\n",
    "\n",
    "predictions = forecaster.predict(\n",
    "                  steps       = 36,\n",
    "                  last_window = last_window,\n",
    "                  exog        = data_test[['exog_1', 'exog_2']]\n",
    "              )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "52168f8a",
   "metadata": {},
   "source": [
    "## Deep dive into temporal drift detection in time series\n",
    "\n",
    "The ultimate goal of drift detection is to answer a simple but important question: Is the distribution of new data different from the distribution of the training data?\n",
    "\n",
    "The goal of drift detection is to answer a simple but crucial question: **Is the distribution of new data different from that of the training data?**\n",
    "\n",
    "When there is no time component and the data points are *independently and identically distributed (i.i.d.)*, this question is usually addressed using **statistical tests**. These tests measure some form of distance between the distributions of the two datasets and calculate a probability value (*p-value*) to determine whether the difference is large enough to suggest a significant change.\n",
    "\n",
    "However, this approach cannot be directly applied to **time series data**, where distributions evolve naturally over time due to factors such as seasonality or trends. Detecting drift in this context therefore requires methods that explicitly account for these expected temporal dynamics.\n",
    "\n",
    "To illustrate this concept, the following example compares two months of a time series against the full dataset. In this case, the tested months behave as expected, so **no drift should be detected**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "888c9003",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Libraries\n",
    "# ==============================================================================\n",
    "import seaborn as sns\n",
    "from scipy.stats import ks_2samp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "00ca71f9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date_time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2011-01-01 00:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>81.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 01:00:00</th>\n",
       "      <td>9.02</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 02:00:00</th>\n",
       "      <td>9.02</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 03:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01 04:00:00</th>\n",
       "      <td>9.84</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     temp   hum\n",
       "date_time                      \n",
       "2011-01-01 00:00:00  9.84  81.0\n",
       "2011-01-01 01:00:00  9.02  80.0\n",
       "2011-01-01 02:00:00  9.02  80.0\n",
       "2011-01-01 03:00:00  9.84  75.0\n",
       "2011-01-01 04:00:00  9.84  75.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Data\n",
    "# ==============================================================================\n",
    "data = fetch_dataset('bike_sharing', verbose=False)\n",
    "data = data[['temp', 'hum']]\n",
    "display(data.head())\n",
    "data_train = data.iloc[: 9000].copy()\n",
    "data_new  = data.iloc[9000:].copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "12599940",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAowAAAFBCAYAAAD9rf4hAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAof5JREFUeJztnQeYE0Ubx/8p1w84eu8dpCigglgRCyLYEbGLIti7WBEF64ciFlRQLIhiAUGxIIKC9A7Se+doB9cvl+R7ZnObbDazLdlNuXt/z3PPJbuzs7OT3Zl333mLDbW6eEEQBEEQBEEQCtiVdhAEQRAEQRAEgwRGgiAIgiAIQhUSGAmCIAiCIAhVSGAkCIIgCIIgVCGBkSAIgiAIglCFBEaCIAiCIAhCFRIYCYIgCIIgCFVIYCQIgiAIgiDiW2DMSkuDw2YTPrP/0u9qWFU23LqT7HZdx8TTNVZLT0fVGLbZzLp5++Kpr7XKG72PrGqHGWW1jo11X2uVjfReMqsdkZZN1LqN9n+i9LV0fzz3dUWYN4w8+1a2I9bzht62xI3AWDU9HQ67rxnsv/S7GlaVDbfuZKdT1zHxdI1V0tKQFcM2m1k3b1889bVWeaP3kVXtMKOs1rGx7mutspHeS2a1I9KyiVq30f5PlL6W7o/nvq4I84aRZ9/KdsR63tDblrgRGAmCIAiCIIj4hgRGgiAIgiAIwjqB8f47rsOB1TPx0hOD/dtSkpMwevi9WD9vMrYunIpP3hqOGtWyIjkNQRAEQRAEkYgCY6f2LXHzdZfhv807g7aPeHwwep93JoY88TquuWs4atesholjhpvRVoIgCIIgCCIGOMM5KD0tFe+NfgxPjByHh+4e4N9eKTMdA6/ujfuGv4V/l60Vtj364lj8M/1DnNGhNVau28ytL8nh4P5Xw6qy4dbtLDMe1Tom3q5RzzHx1te8srx98dbXauWN3kdWtcOMslrHxrqvtcpGei+Z1Y5IyyZq3Ub7P1H6Wu26zGwLzRvaZY08+1a2Ix7mjRK3G3qxoVYXLwzyzssPI+dkHka8NQHfTxiN/zbvwItvTsA53Triu09Goc25N+JUbr6//NJZE/HJ1zPwyVc/hdTVtHp1o6cnCIIgiITn4ovORK1a1eDxemLdFKIcYoMvbM68v5fj4KFj3DI7j/G3m6Jh7H/puejQpjn6DHo0ZF+tGlVRXOIKEhYZR47noFZ1ZTvG7NxcuNxuQeKtVamS/7saVpUNt+7j+fmolpGheUy8XSMjVm02s27evnjra7XyRu8jq9phRlmtY2Pd11plI72XrLzGeGmHlXUb7f9E6WvpfsZFZ3fG8bw8TPjuV826bTaboEUq9Xjg9XpjUlZanqF1TDTaEW7dSsdHux2RlhfLuD0eIUQOr2xGWiruv+NqfDdzHvYeyA65D41gSGCsV7sGRj55N2689wVBMDQL9nBJ1aLy70aONaus0fLshzJyTLxco5Fj4qWv1cry9sVLX+spb/Q+sqodZpTVOjberzHSe8msdkRaNlHrNtr/idLXojDZsUMLvD7+G+ha4isTApgw4I1VWUl5XcdEoR1h1610fLTbEWl5sYz/a2jZvMIijPtsGu4e1BfvTPjev13PS1BEAmPHdi1Qs3pV/D7lnUAFTgfOPqM97hjQFzcNe0Hwkq5cKSNIy1izWhayj+UYbhxBEESFpm5ToPctwJwpwP6t6mVT0oFHx/s+v3qbZBoh4hE217vdtBRNWE9+YRHsBrO6RCwwzl+yBhdee1/QtrdHPoxtO/fh/c++x4HDR1HicqHnmZ0wa85CYX/zxvXRoF4trFizKeLGEgRBVChuGg4kpwK3Pg+8eqt62V43BT5n1QByjljePCJ8dOqZCMIUzLjbDAmM+QWF2Lx9T9C2gsIinDh5yr99yrTZGPHYXcg5mYvc/AKMenoIlq/ZqOghTRAEQSjAhEW9ZFQOfLZRTgaCIOIgrI4azHOaraN/8r/hwvL0vIUrMXz0h2afhiAIgpBil4TUIIGRIIh4ExivG/xM0HfmDPPMq+OFP4IgCN2kZQKFzPaZluq4ZFQBivKU90tjsJlgr0QQVtGtc1u89uwwtGjSAHMWLMddj4xCeefRewfi8gu7o/eAB5Go0GsoQRCxp1Yj4OEPgAGPxbol8csDY+Fp0FJ5v9TrkQRGwgKYz8KuFdN9f8umYfEvE/Dcw7cLq4lGePGxu4QscWdfMRgPvxBwoiWCYf186YVnI14ggZEgiNhzRi/f/2YdY92S+MVmh6fDecr7//s38LksVh5BmM28f1eg2yW3o0ffuwUTtJuvvQyPD5U4XOmgSYO6+HfZGhzMPhYSt1kvSU7TLeoIDajHCYIgEgU1zWFpqaQcCYwJSVIydzMz0vA6HPDatWPnGSkLV4nhJpa4SnHkWI4Qx2//4aNC9JTzzj4do8Z+7g8mfd8d1wqCJEvYsWP3Abz9yTf45c+FQsQUlvmN8fZLDwt/TMP43Yw5aNW8EZ5+8DacdUY7wZn270WrBYH0eM4poTzLKrd5226Uut24ts+F2Lx9t2AS17p5Izz/yJ2Kx31XdlxhUTEGXn0JXK5SfPn9rxj3yVT/NbFQgM8+dDsuu/AsVM7MwM69BzF67Of4c/4yYf+Zndth+IO3CqEFT+Scwq9/Lcbodz9HUVGxYj/df8d1uPvmfkhLTcHMPxbg2Alfe0Q6tW+J4Q/cgtNaNxfCEzKNK2v3uk3bhf2LZ00Q/n/69rPC/70HDuOsPoPRuEEdwbH4jI6thTTNLErNq+O+wOJl62A1JDASBBF7aAlVH2oZIqR9SAJjYvK4T0jgYSRVhu6yWqGaNGDCWtdObbDvYLZ/2wN3XY9r+1yAp195H3v3H0bXzm0xbtRjgsC0dNUGdOp1C+ZPH483P5yMGb/PR25egSCwfT1+JKZM+0MQmlJTkvHsw7dj/BtP4oZ7nvPXff2VF+GL737FVbc/CafDLhzH0hF/rXHctX0vxMdfTkffWx5Dl45t8M7Ih7Fq7WbMXbhSEHC/em8EMjPS8MCzY7D/QDaaNa4vZE9hMAFt8gcj8Pr7X+HREWNRvWoVjHr6Xowefi8efXEst1+uvKSnYLP47KvjhWtm579r4JVCf4hkpqdh6oy/8NyGj1kOP9x7y9X48r0XcU6/IUJEGpZNb93cyXjkhXfw178r/O3JSE/FnAUr8Np7X8LlcuGGfhdj0jvP4aJr78NuSf1WQAIjQRCxpXo9oPMFsW5F/NGgFWejmsBoDxYes2rB3bgtctPS4N22Fjh6wJJmEhWLi3p2xX/zp8DhcAgCmtvtxrOvfSTsS05y4sG7rseAIc9h5drNQhq6HXsOoFvndrjlusuweMV6QTvJYlAyQZF9Ztx7y1XYsHknXhv3pf8OZ8LYij8moVmjekIdjJ17DuKVdyYJGZJZ3cPuuBbrN+0QjoPKcZu27sbbH/my6rA67rixL845s6MgMJ53dmecflpLnH/1MOzcc8DfZrEdD9x5PX6c9TcmTJ7hb8Pzr3+MHyaOxvBRH8DDCb5+96B++Gb6bEyZPlv4/sb7X+G8szohNSXFX+bfZWuDjnni5fewaf436N7lNEGzebxMI3kyN9/fT4wNW3YJfwzWD2M+/BqXXHAWLj7vTEycMhNWQgIjQRCxZcATsW5B/MEEvlueM3gMgm0Yr74f7jpNcJR9v/CmiLVJRBR4a7DiLibI6E3nZqSsURYtX4fnXh2P5JQkDL75KrhL3f5EHU0a1ROWSb8Z/3Jwe5KcgmCnRLvWTXF219OwZWFgmVikccO6fsFv7cZtIcf16NYBWzWO27TVJ2CJZB85LmgKGe1bN8XBw8eEsrx1DnaOti2b4Jo+5/u3Ma0kE5gb1q+N3XsOhhzTomlDQRMqZcXazTinW8BGu0a1LDx1/83o3rUDalStAofDLixf169bE2qw/n383pvQ69yuqFWzKpxlgnu9OurHmQEJjARBxJYq1WPdgvjD4YxsSZpNfXWamN4swmIUbArZL2vzOGBzuzWDThkpGw7MFnD3vkOCQMq0eX9OfRcDr+otaNMy0nyB5m95YCQOZx+D025HqccjtKOkRHmhPD0tDXP+WY5X3vkspM2Hjxz3f2Y2ivLjZv+9DKPGTgqpU3pcaWmw8MzOYS9zDCsqUrfjZNf01fe/cbV3Bw6Gn01p7MsPo2pWZbzwxsfYd/CI0D8zP39TEK7VeOHROwWt6Mgxn2L33oModZXigzeeFLS7VkMCI0EQRKIIjGV2THwkAiN5SRNRgCXpGDfxOyFMzrRf/8aWHXtRVFyC+nVqYsmK9X5Np5bgun7TdlxxcQ/BsaPUQH5tdlyfXr7jws3LvWHrLtStXV1YwmZL0nKYE0qrZg2xa2+oJlFcGpezbedenNGhNb7/ea5/G/suj0U5fPR4/LVghfC9Xu0aqF7Np/UUYamWHbJnmR03dcYc/DZ3sXD+KpkZgjPRkhX/wWpoVCEIgojnrC1SvB6dTi/kREREh5mzFwgOGbcPuEJw1hj/xTS89PhgwUGlUYM6OK1Nc9x5Y1/huxKTvv0FVSpn4oPXnhC8h5mjyfndT8fbLz3k1wQqHZdVxfhxUphd5eKV/wnZ6c49u7MgfF14Thdc0OMMYf/7n/2Arp3aCmmO2fJ100Z1cekFZwnflWD2jgP6X4wB/XsJgigLO8S8wKUwW8jr+l6IFk0b4PTTWuG90Y+hsDDY63rfgWz0PKsTalbPQpVKGWXHHUCfXt2FtrRr1QRjRz0Ke5Sc3EhgJAjCPM6+Aq4bn8Khy+6Gp1VXVHQ8jdsBV90PpFfSLOtlWsV+9wLtzlbUMHpOvwgH+wxVqEEiJF7/aOhutq1+C/6hdZvB1f8+uCqReQBhDKbZm/TNLxh2+zWCDR5z8GBhdO6/83r8+f04wcOY2dvtUfHgZcvH1905XBDypnw4En999x5GPnG34PDhUdGqs+P63/6koIUzcpycux97FWv+24oPXn0Cf343TvC0ZjaFjI1bd+GawcMFz+lpn76GP74Zi8eHDsIhyZK3nBl/LMA7n3yL5x66A79NeRv169bCF9/NCirz2Ih3BSH59ynv4N1RjwpL3kdPBJxbGKPeniQsPy//7TP88a3PI3vE/yYi51QeZkx6E5PGvoB/Fq0SNK3RgJakCYIwjwsHCMtPhexzo3bAxiWoyJSKDj1eN/DTh6plmTCI9j18f+8/oliuqEErJAkaBZlTg1SrmOyzJQuiRWegWh3goydD990+QvjdsmvUBSYadLYhKgwsxAtvCfa9z74X/kQmfj0Tn349U3FJuu25A0PqYEu+THDz6kxDLNXUDX7sVcU2Xz/4mZA2s1SE0m1MAHt0xLv+JWZ5m5kwOXDoCyF1q+nx2VI9+5OWffO9r/zf12/eIYTOkcJiVUqZM38Zfpu3OKgtTOsohgwS2/vZt78I9qJWQxpGgiBMgTJAq1CpmmYRb2aWtg2jCG9y0LMMzQRGFVyVa2jXQRBEhYQERoIgzIGCRSuj5t3ME/iUbBhV95PdIkEQ1kEjPEEQlqY1S3jMEITVnFV459GrYZQH6yYIgrAIEhgJgoiY/CYd4HpY3UaPT5wLOf2HAg+9D2+qz0MxbJjzixZSgY9jJxaiYRz4FDD0rYBwGeddSRBEYkMCI0EQEXO05/XhHaglGMWadt2BtAx42p5l/bmk2kLNJWk70KQ9UKVGwPPZFE0oWaISBMGHBEaCICLGoyNsDJdECTAdDUEqKI6iRr/YKcAFQRDRJUFGa4IgyiUk+ISpYZTuLxM0yYaRIAgLIYGRIIjYwdMw6rH3MxEvE9SadQRS09VK8Tdn1fLFN5QJa16bDQUN24XfF806qJeVOsU0bQ80agOcdy0ixZuc6gs2zpa7q9UFmnYAnEkR10sQROJDr/cEQcQOnibtpqeBmeOB9cFBbK3C0+k84JLbgE1LgWnv8QsprUjf9gKQXhmY/n5QkHKW5ebw5XcbbIlE6OzeV7Wk1ykZunv08/2ZHWxcZP2/wMyPTKufIKyApfRbOmsieg94EP9t3hnr5pRLSMNIEETsUFp6bd0tak3wnN7L96HNmcbD4jBhkVG7cXDxWsF5Y1Es5L4xz57TEUWt32nnRO9cRFzz9siHsWvFdAy9/Zqg7ZddeDYOrJ6JRLyeT99+NtbNSBhIYCQIInYoCknRs8fzatkLmnFd+Se1jzFig0jLxESMKCoqxr23XYMqlSIMNUUkHCQwEgQRO7QCVEcDMwRGubAXTp1GBMZoahgJQsKCpWtx5NgJ3H+Xeiitbp3bYeqE0di2+Hss/+1TvPzkPUhLTRH23THgCvz1fcD849ILzxY0l7dcd5l/27fjX8aT992sWH+n9i3x+zfvYMeSH/Dr5DE4rXWzoP12ux3/e/EBLPplAjb9+y3+mf4h7rrpSv/+h++5ETf06+XXjrK/7l1PE/Y989BtmP/TeGxf9D0W/fwJnhg2CE5nnIcAiwIkMBIEETuUwsdE0+G3ai1Ns0X3edehoGEbdWGPxUMc/oUQ7NvT7dLQHM7MkUSBvBZd4GExH3VS2lt5IjXMmZcjvrGh9Nxrkd9Yuf/KC+l2b1T/wsHj8eDN97/CHTf2Rd1a1bllGjeog8kfjMBvcxah9w0P4N6n3sCZp7fD6OH3CvsXrViPVs0aolpVn0lH9y6n4diJk+je1efsxYSzLp3aYNHydfx+SkvFxHeexZYde3HZTY/gf+On4IVH7wwqY7fbcDD7GIY88Rouvv4BvP3xNxj+wK248pKewv6Pv5yOGb/Px18LVqBTr1uEv+WrNwn78vML8cgL7+D8a4fhhTc+xqBrLsU9N/dHRScOXu8JgqiwKAbujoMQMVKNX3olHL58CJLXLVYqDNz6gu+jkuDHMrO8eit315GLDAqAVWvDFJiXd6+BiGvadIWne19kA0he8y/KM6fOUkshqSO9pMGySYvC05r9PncJNmzeiceH3oTHXhoXsv+BO6/HtFl/49MpM+Fyu7Fjz0E8//rH+GHiaDw96gNs2rYbOSfzBEHxlz8XCpq9CV/9hNtv9Dl7nX5aK0FoXL7GJ8DJubrP+YIG8fER76KoxIUt2/egbu3qeP25+/xlSkvdeOvDr4WRJMnhwM69B9GlYxtc2bsnfv5jAQoKi1BUXILk5CQcOZYjHCOWHTthqv+Fcd+BbIz/Yhr6X3ouPpj0IyoyJDASBBE7lJZuoxlT0FXCz4OtuawsDbQdBwJuOKRlIu6pVC3WLSA4jBo7CVM/HoUPv5gWsq9d66Zo27KJINiJ2Gw2OBwONKxfG9t27sPilevRo2sHzF+yBi2bNcKX3z2He269Gi2aNMDZXU7Dmv+2orComHvulk0bYtPWXSgucfm3rVgbKlzePqAPbuzfG/Xr1kRqSjKSkpy6PKj7XdITd950JRo3qIuM9FSh3Xn5BajokMBIEETsiOdML1rZVmzmCIwxTcYXz/1fAam8hP97iJovpq3Tul+MlI2EJSv/w7xFK/HMg7dh6ow5Qfsy0lLx1fe/4Ytvf0GpxxPUjv0Hjwj/Fy1fj0HXXoqzTm+H/zZtR15+oVAn0zYyzSNbto4EphF8/pE78fKYT7Fm/Rbk5OYLzjpndGiletwZHVpj3OjH8db4rzFv4Urk5uWj/6XnYcitV6GiQwIjQRCxI54zvWgJU9L9kWgYrfDS1osZ+acJ0yjw2JSFQJsNLo9Nn8BooGwkjB77OWZ/Oxbbd+0L2r5u03bBRnH3vkOKguuiFevw0hOD0bd3Tyxc7hMOmc3iuWd1RrfObfHRl9MVz7t1515c2/dCpCQnCUvSjDM6BNsYszrYkvbnU2f5BegmDeoElSlxueCQPedndGqDfQez8e6Eqf5tDery7ZwrGjRaEAShDyYUDXoGuOExU6oTMorc8hx/J8ueMvwLlDz5GU50CXhOculwLjD0f0CN+qGexHe+DFw5xPf9stuB215UF9Duexue6vUEBxfXg++H7C65b6zPsYX9BYW2CXPqbdEZrmFvI2boFXTTKgFD3gAuvFF52VjsF/lvcdkdcN3yvC+jDlGuYLaIP876G3cODHgfM97/7Ad07dQWLz15N9q3boqmjeri0gvOwqiny55FABu27ELOqTxcffn5fucW9p95LScnJWHpqg2K52X2kV6vF2++8ABaNmuIi3p2wb23XR1UZueeg+jUrgXO7346mjaqJ3g6M89qKcw+kS2dN29cH9WyKgt2k7v2HED9OjUFDSVz3rlr4JW47KKzTeqxxIaeYIIg9FG5ui8FXfNOQIpaGr0wM4ookNNF5nEsp+/dQFZNoM9dwdsbtfYF1BYDT59+EVCvuS+VnhKVq8PT7TIc7Xk9X8OYURaom1GnaeSqmusfFRxqYoZe7SbLhsM8vc/uw99/syT4Mfst+t4T+H76hfDWbYbCBq0jbCwRj7z54WTBAUXKxq27cO3g4WjauD5+/PQ1/PHNWDw+dBAOHTkeVI4JhUzwE4VDJkTm5hdgzYZtivaLDOawMvjhUWjTsrFQ99P334JR70wKKvPl97/i178W4cM3nsT0z99A1azKgrZRyuQff8f23fvx69djsH7eZEEr+ec/y/DJ5J8w6ul7Be1p105t8M4n35rQU4lPHK8HEQQRV3i98RU/UUv4UbIxtMmFpOAFM29KKjx6HC2kdcbUENFiG0aPG0hOVS+TnKL+XQiQbo/8viNiCgs1w5Z35Vq6pmcGZ35hMKeVW+8boWpLeecjo4LsLpnw2P78m3S1ZdX6LbhkwENBddfrHNB0lrhK8ciLY/Hoi2ODbDpfHfeF//3u+IlTGDi0LLqBpB1M+HxFJoBOmDwDFR3SMBIEoQ+pgJQImUY8Hn6ga7M8moMEmQQVanQJcTZtW0evHs1lgnqSEwQhQAIjQRD6kAoNegVGeU7lMlyWhEoJSC1epgFlS6i89moJP3rbJhU8WTzDRKJ6PSApRfH3CREqazZQ3O11Jgcv1TMyqwJVagDV6moL6rbg+r3V6sATlMlGRRhPTYeXmUoQBGE5cbiuRBBE3GujMrOA44e0j7nrFWDWRGDN3/5N3krVsG/g8+a3T6LxKx34tM9eUUQqGGlo1bzS49SQCqHMSSdRaN8d6DfU2DEtT1fc5WKORHJYXMthY4K3KQnqzPa047nAX98AB7bDdfOzOHDiMGyfPK3drkfGg/nIln41AsjxBV8mCMIaSMNIEIROpHaABoaOc4JTankaqMdBM0NgDBH66jRWtr/0lsOQQGqcf4P52spIYMIio0c/nzDLhFCDmWyK9WhKCYKICBIYCYLQh3RJ0UjsQPlSZEyyotjMd9hRTGsY78SrvaW3QsWFtJFNJxFFzLjbKs7TSRBEZEiXco14vMq9XK3KLqLmTSsVUs0S9OLRUzyRvY69FSvzDLslHY6Kc71E7GCZdzwmPPd0txIEoYjgPHL2Fb5AzFKhiy0zS51KVCuRDVRmaZFYPWdeLj2RTu2oSYLeBdcjITFJw8ucTXI6X2zkCO39vHtDzzwX7mRYqyFwVp+YZNtZu24b+vUuixFKEBYKi/fdcTWm/To/4roS9BWZIIho4D67r084vHAA8KnEUaV+C2DwaOCNO7Ur8UrC2zC0Yvrp5fQLgV4DJefRKTAWF5hzfks8vaOASZpR103P4ERlk/vAiIYxo4r/o81dGt757vLFARRYEhzU2WrW/7cdZ/XoiEfvuUGIP6gGu3tTkpwodpXqSvdnRVlpeYbWMdFoR7h1Kx0f7XZEWl4s4yp1I8np4F4P0yx++9Nf2L3/MCKFBEaCIBTxMsFQRK790St4yCdDFs7FDFgWF7XzSJFqkIryZTvjdInWKsxaSjdbWGS/nxHtpyQ4uK20JLJz12mCWPDjrH9Q4nZrlkt2OFA/Kwv7c3I0y1tVVlqeoXVMNNoRbt1Kx0e7HZGWF8tk5+aiVqVKuusOF1qSJghCn3BhD3MpM8SG0aTlP3m9qgKj1P4yUZ1VALskPFH4lTjKh9OLtGykto/xatdJEHEECYwEQegTLsK1PZRNxl7TBBb5JK9Tw1iBPHHjyllHj1DG/W282mUj/U3lZhMEQYRQwUdOojzjzaqFA/0ehKd5J2tPxJw/bnkeaN4R5Vq4uDWQc9XPzc/Cy4J4G5mMnREILDUb+trRuG3ovsbtUNp3CF+8YDH+RK55AOh2KWICa3ubbkBWTWD4F7FpgxlpHZlNaySce42vL6T3jlEvacnyddh5qv0VkIaRILQggZEot5T2uQvFdZqi9NqHrT1R/2FAg5bADY+j3KGlDWzYGu6LJI4nOiZjW052+O254VGfw81Nw4GSopDdnnZnw1VVh/f2xYOkDUTUYG2/+gGg7z3Gj10wPX7sLZnnfCT0vMrXF6f1lGxk12bTL8wFaRgj1FqTwEgQmpDASJRbvGmZ0TmRloatnONNzTA2GZeG6dHKqFQ18Lkgj3+6RMjAIs2xrIdxDwHzf0S5I0mq7TRoIyvRKnojDRVEAiNBaEICI1FusXmiZJdUnoMNmxGzz8zA3UFaJaUyKH92hHknfP/jQa4x0wZU+ozaopR5iEs8dCxBxDeGRq1br79c+GtYz5fnc/P2PXj7428w998VwveU5CS8+Nhd6HfpucLneQtXYfjoD3H0OCWFJ2KAQUN2j8MJLwv54jYYp09tOczugDc5Fe6UdHjtuYAzxbw4gBbjcSTBm5SsXTAlXd/vwGw9T2QHxc+zRpjVJ3kw20v2myM5DVEnVaPP4lmwqVorrMM87BlgMThLigMbs2qp/26snyRhmARtdv6psuKB8qXplfk9w4RbVgcrW1wEb9Wa8Njdvuc8PTWhNIzuFKbJp7mUSBCB8eDhoxj97ufYueeAkAfz+n698Nk7z+KSGx/Glu17MOLxwbj43G4Y8sTrOJWXj1FP34uJY4aj/+1PWXcFBKGEwUlgzy0j4WXCw5uDASNx3dRSzQ37H1yVqmGPdNu7DwD5JxHPeG127L7zNV3aJG/dplolfE4mZXaD7jjRdLmGvY3dSDTiQH065I2wDjt6/o1AtyuAT54ObOx4ruILgCAcDnkTSAkI9K4H3wMmPAMc2Rf0+x8/5xo4PKKdp4TrHwEkTm8ugP+bx7mXtLtHP+zpeTUcv34KrJ4X6+YQFRRDI+7sf5bhrwUrsHPPQezYcwCvv/cl8guK0KVDa1TKTMfAq3tjxP8m4N9la7Fu43Y8+uJYdOvcDmd0aG3dFRCEEgaXpAVhkVG9rnmTOC8bSLMOiHvSMsxbemSCe5CTCazVMHqtC1wbE5b8GvicYlKWnFiRXkkjQ07gJc/L0lFKhEU/nS/g/v5u5nktx+oICVHC3fNq3/9Lbo11U4gKTNjW4Xa7HVf2PgfpaalYvnYTOrZtgeSkJMxfssZfZtuufdh3IBtdOrXBynWbFetKKtPQyP+rYVXZcOt2ltllaR0Tb9eo55h462teWd6+Uq/HP/2wiPhqOB1OiDpFp8MBu0p5+blKEBBM5efh6SkdDiccsnJG7yNeO8ws77TZBG2MGdi83ogXUgN9HTwGeRIqMLVx7JuWwvn3VL8W23sim3/NCYQzKRlctyebDTab3X+vOJ1Objm7zS48ox7Ofj3PHw+73SHUaeXzxduvt27pdWiNZTRvaJdVOj5W81e45c2YN4xkhjEsMLZp0Rgzv3gTKcnJyC8sxF2PjsLWHXtxWutmKC5x4VRucNqtI8dzUKu6uhcpS2mj9t3IsWaVNVq+WkaGoWPi5RqNHBMvfa1WVrrvgN0O0VpKTGeltgS7y19HZaQUa3s+i+dix3kVzrOTc1zV9HRUUmiP0fvIaFm95d3JqcHL6BHAJjiJ1VpYiG2W9mfl1DSuRRf7LcsLqSmpqC25V04kORPeiq1GlSwcUhAEU5OcEC18szIyueUyUlNQIysLhZUqh+zX8/zxSE9JQU2FZ9Ls50u6X2/d0uvQGsuM1m20rNFjYj2WqZVVOj5W81e45SOZN3YeO2adwLh91370HvCQsATd9+JzMHbkI7hm8HBEAsuD6HK7BYmXXYT4XQ2ryoZb9/H8fOFH0zom3q6REas2m1k3b19paUBHxnJsquGU5KXNzsuDXaW8/Fxej1f3eRgniopwSlZOfh8dzstDcauusO/fBtvJo7raoQXToGR0Pg95uzfDffQAt4yncTt4K1WDw8Slz2IWbDtCeNd4sq4kz7UlmWRiT6HbE3RPeYsKkegcbnsOd7snJQ2FrsAze6TVWdxy+cUlKCoFSlt3D9mn5/nj1pmcjhKFZ9LQ89XpXOTt3Qr3kf3Cs8RsodkzLK+PYaRuP16v5jXSvKFdVun4WM1f4ZY3Kn/I6zWKYYHRVVqKXXsPCp+ZnWLn9i0x+KZ+mPH7fMEzunKljCAtY81qWcg+pn6DswuUqkXl340ca1ZZo+VLy+zl9B4TL9do5Jh46Wu1stJ9Nk+gjFbdUqFP+C2N9IfEuUbPNbi9XrgVyon3UXH7c+C+9Hafg8irt5rSd+7W3VDQq6wuXp3MXmzAE76yiK9UdLxr9NZrXu7DHHn3bQ26bqeCoJ9IeFueobzPHVhkdiuU85S64LnkNqBF55B9Rsc+/3mbddQ1pqjhaXE6Ci6+zfflnWH+Zwmvsm2BMUI6oYczXtO8YV7dSsfHav4Kt7xR+UMsa5SIR1ab3Ybk5CSs3bgNJS4Xep4ZMDJu3rg+GtSrhRVrNkV6GoKw1ulFKmQYdkQ1aKGnx/O4ESf1XYR467dULxCL8DIWUG40jAumAStmB22ybV2lfcxf3wB/fAlsXIKEQxpyR4mj+7nCYqzxSF9gpEkDYpW7myBMxtCdPPyBW/HXvyuw/9ARZKan4erLz0ePrh1w07AXkZtXgCnTZmPEY3ch52QucvMLMOrpIVi+ZqOqwwtBxEdYHamUaFBiNBrDLVYCjZbmrZxo5rzlZYKePy1kk03r5UR6zI61QFvZsi5Lp8hiISZyoPh4vU+loXkkmlIhd7rbJBeyBIgXSZRfDI2sNapVwbuvPIJaNaohNy8fG7fsEoTFfxavFvaPeGsCvF4vPvnf8LLA3SuFwN0EERO84WoYjaoYjQqMMZrwtK4rXidioyRCasBoIDHJSBiBQ4+wH68aZK9CPztY+sPEtz0lCEMj62MvjVPdz7ykn3l1vPBHEFzOvByoXA34c3J8CYyRpMAzOglfdKMve8W/PylXaTTXsCkCY/wKWq5rHwJmf6WrbHbv2y1vT8IKjLy4hvFEu7O1y+iJRVirIXDOVYga7c6Gp8eVge9X3Rf4rCdbkm7iXOAnyjXlRKVAJAy9BvqyftRqZP25JB6XxnIU280RGCtXVz7Xedeqa0qsSOihdV3xqrlhXdy8M1AWvDjhOOZzEjSLymvn6itYXIG1Wre8ALTpFr3z9R8W/L2+xIPfrFSYBBFjSGAkYoMkP6xV2Ji9VjjLsWYtzTqTwxfgeNqh8rwkvW9rsN0Xj6ya4dW95m/ECvuqv4Cpb+krzHKM52mHham25OdgB5CJzwIsZdxbdwcXdBmIfnlge+BzUT6weTkSGkmYLMPXbzaRrF6EVmZiXQRhDBIYiegRJCBFY2nFa0B7ZotAw+gJb6IwdSLRgdb5dGYgsISCXCB7r3qZcG+ZQ2JI9ujjWDkHcOnMN5J3EjiyX7OYTXq/Feb7+o3lF5YLiEZMJZiDjLROJohWJMIMx6MLMwPJR3vMIAgJJDAS0SPaAol0wjTiIWx0aTZcQUatTd5YLEnH0IaRTYRaWtVwNaBWaGstsaMNIw+2Wc+UNAQV+y2MtLs8YPTeMiIEOpnTSwQEmcuQwEjEDhIYiehhj6HAqDXASwdiw4KJN0wNo9p5vDEQGGM4HLBza8XNlNqFWRWP02wMndvm07QaIasWzH9WbPriIZYn2L11Vh99Zc++AnjsY6BOE33lBz4FnH9d+GYt940JfCeBkYghJDAS0SPq8fEMLElb4fSiRdSXpBG/Ti+sz63SasVUw+jVf3+w+2HhTJ8d47zv9B0jtdONBGnfs99i3XzgpP4cs+UCFr1ADxcO8Hk+i97aWrbKjB79wmtTk/ZApWqSDSQwErGDBEaiYmgYLV2SDldgjPLjF89e0qxtUm3cf4vMq9sKDSOzTdSDofndBhw7AIx7EFg0U+chBgWInz/RsSRdZlP6wSPG6q5oiM+9lTKc3OSgvMRKJRISuvuI6BGJUBYOQcvMBpxejA7KSgJjJEvAVgRY1vSSjqHAaJfZzWl5TMdcw6hTShDuAb0aRgvb4S9u07ckTWgj3q9WPjdxHOqKqHiQwJiosGUQlk81ntN8qQ1+0XhTlk58GsKbN5KwOlWU4i1qTLzd+3KXs1yVqsMrzUur15atTlOgcdvgPLYilavDo2UD6Ii1htFtkcBogYZRr1AllDMiXBptB8whyByApgXF37JZh+D7ijm0XDRQ1+Geus30n4ctRVetBTSVnE8OG/ubdSShkoga8ZvagVDn3GuAs/v4wmmwGGyJZsMYDY9cmwEh0EhZOeEO2CyAec2GwJTXgjYf6P+Q8bqGSmL9MRs4tqwp5b63teuI5cTDhNwDO4DmnXwTsZlaLpbL12zyTugrV+oyKFwa5Mg+Y+XzT/K3s8xCxw8B1erAvncTEtZHmmWysSpgeZszgzO4sN+LOb/ofG5Kb3keJVNfA3I0Ym126Q30vlm7wosHAZ3OB/76BlgyS1cbCCIS6FUyUWHCIqPzBUgYoq1hDFpmdhjQRpolOOlYimzSLmSTJ71SZKfNzArvOBMFxspr5hrLcMIE9sW/AGv+Ab4fA5TqjF2oB7O18Gv/AVb8qVms6tJfYDt1zIDmUL/A6Jz0IrBqLvDLBNVyjhkfIuXgDt8Xlo6TxVtc9ntowcwqcP78ETI3L4Fj3lSYjX3dAkSF1Azr6mYvM1Jyjhh+Zopr6shw1b67vsqYsCiuVBBEFCCBkYiRwBhnNoxWZHoJY4nRG0svSJN+E9u21ai+ZAacv31q7LcqzAVmTQC2rwUO7zF20qICYNanYV2X4+/vjS2BMyGtMC9427bVIcWyVv9p7H4y8NPbs/cAv32mrDEsw7FpKerNHIfkN+7wCYrMVpGXx93ugP3QLtT8+xvYco/DVL58Bc5fJyJj24rg7VqB2nViO7IvkNXJSvtLuV1xOLaxZB9KJDAkMBLRwxFDgVFzoI4kDqNSlWHUE4YdoWnuMWb9JmJfG7EdlP8+Rm0Y2WTudoX3O5jhYKTWXiuXpM3CSvvVMvtIm/x+MNWxy5sYApme9lnh8EYQJkACI1GOnV4MeGUb9OBmjimlvQYBVWqo1BnG5GUwK4SrSk24e98SuoPFiDO6tO0wW2B0hz+RMts/Q3iVj9G810yw2FMTjnUL4jEUdkwzw1BxqJHH2TQx7qbNK3nmO5wLa/BGHEjeqyQwNmoLXDFYsCE1XilfwPTUauSzheQ5wcUhxTUaoLTXTdaaFRARQU4vRPSQTpyOOFuSNhi4+1DfYfCwgLocG0Qj9YRg0BnoQL8H4EnjCIZdLvZNcH98aeDc5gjx9q2rwhAYZec2qilik6LSb3xgO7B7A9C4nfKEu3quz9nACEt+Bc66HGD2eTLh3L7+38AXndlb7Gv+jp2zyRbZcrGZlAk0mhpGtryeUcVw9fb/FsLLsq/4zgL0vRuWIJfLajYwXofSfX3dwz6HHXYfm6RhLL39Jd+H9MrATx8g3jlwzWO+D8lpwM8fx7o5BAfSMCYqsUx3Fi6WOJboPJ+Wts/Q8jVQKmZfqF7PvIwx8vA+OtrDFRZF6reKSSBx+9q/fdVFsiR98ojxE588Grrt69eA/duA798Bpr/PP45N0HO+AWZ8qFq9vSgfSZ88Hdgw/wdg2jjgz6+C7fG+exuOP74IfC8uAP75QbXuWrMnwbHkF0SNsff7nHcmPgdM/R+wUtuJR2DOFODbt5S1g3s3A5NfBfJPBbaJApD8BUJeB/utjPLjONhXzA5Ic9HOJsUiEhhC4VlmwiKDaQUNoyFg6k1hGC+wyBFEXEICY6JiVRo1S7HFTsOoJaAGCWoRLA1K6wnHnoontIUryIn3iN7j9bZXwyHFpiQgGDl3aRhxGD2cY5hmkcGcIjYvV7d/3KyuZavBHEJOHA5scJUAm5b5HG6kNozbVsEm9/JmQqsKGTvXwGZ4GT4CCk75nHeY88z2Nfq1WkwTyTytlfqSOSzt2QhsXBzYVvbiwNUwsj4UObrf+HVsXgYb63ux/SxlXzQx6vii9YyFo13UOoTiNBImQQJjopKIhtGGMq9ETpC9kOZyq1S4hEkCYziBmDknD7evjGaiMFuwNKQFt0Xugep2h/eSFY6AG1pJ/OaztsQe0avf4Uks65X1AStjUr/4X1L05HUOGxPG3Fg45cQyID9RriAbxkQl4QXGOHZ6aXc2sPQ3E84Zjg0j55hw+0qcjHnHP/CuT8PEtEWMof8DsmqG30a18+uBLduGe6zeY5SeGVHI0BJw1SZ7b4TCbKIg9pFXo4+ksS+VvKSZg5e4FBsp4m/b7ixYwtX3+wJ3y6mskOVJAVeVWjquw+DYnlEZGDbG99luR4mrBKW/SMwrRPOZikizDii57A4U/vMNkGOhnW4FgTSMCUuiC4zRtmE0kOlFbwovSzSMZi5Je5X7mgX3vvS2wHe9wiKjam195fQKfWxJce43ofaIJ7L1t0nv+dgSrAwvm3B9n5SPKylC2v4tyvtZxiUmGG1YEn7b4hEW65ErdHOEayYQssDrjFZdQo+Ra3hr1A+tY6NC//FgS+nyc5x+ESxZqeAJi2Fgl78YmQWL1sD+mHBYrQ5yulxqzXkSjQFPCP1y6Mr7Y92ScgEJjIlKwmsYoywwaq0zR7JUJE1FFuT0olLnqeOBbBFWaRjFdikdb0RIDEeA1bskPeZen+1b0LFu4OOnYDu8W3+79Jzv0+eNp9MrzEfSuAdgdxWrpwp8827gJyXHGoW2/fQBklhQ7XiFZZMZx0lVKRl+kiYMB169FXjr7kDKRKnziZKGkT0fB3cGb2OOSXpS+/3+OTB1DL9BUpiDTqTovd9zstH4s6fhUEvVqjlue0253720DE1YAAmMiUoiCoxGUvWZcjoDns9mLZHrjTUpps2Tl+FqGMMUZsXjzO5rvc3Rq1VTSgPIjjeimdNTlj03YcR4FBwrtFAKHC6el0dRfiyjL+qDJyhLBeCi/NDrD7Jh9PB/H3bv8+5NV5HONnm1+1fqpBQuOp8/lm2GvVTYcnXmGY+UuL9xiPIGCYxxjiuzKrwp6aGaoeQUJBzSgddggOowT8g5t61sKcymT4vA+tpI4FuxHnY+tXAW4uTKbKCk8dx47RAnVbHOzKrCspMQmDdSgZEFCjaqadSrcTHFk9/ArGg0O4yfGL58JUJ4LOnvyPs5uMKadJvvIJv8fmD3Je+lSk+fyO5Bv9OLyaYAHkcSvPWa6ysstslq84PajYPPx29M8FdhjEkQCdOiuc3LzHCIiCCnlziG2Vbtu+kF3xe25CPaj937JhISqcAYiZ1gOOcTP/caCJx5GbDoZ2DeVP9ub1VOhgUmmA15w7d8/GFZUFktxAnwrCuAc6/Rp1UbPBrecQ/62sGLFylODD36AeddG6hCqy1+gVFlYmHXZ5RjB0LiTzLtilfq6BBtuz0W908uaCgJHswMoG5T/1ebPC+0FShpNeV9Fo9I+9Hv9OJVd+g5tBto2r7si1f592DaOHkAbD2rJyHaXK/JLxE+jlx4E0qbddZXmIVX4rbNZC/pO18GpryuWsQrf0kcPBr49yfNeKBxQTjZbnTgGva2z2xCzbSEUIU0jHGMt05gUvPTRByEExGbepBl00/HcUBhwiKje9/gsiUcY3SmzWMDr5YGjieYXniD+jEyYcorTppcDWPZNomwqA8LlqR3rAuxC7NtWoZKm5dY4xmsd35ltoNyAfXHd/ll5/8I7PoPtu1rkL5zbVngZ4thQjZzjNm3Bdi9MbBdLfB6vMBebhbO8GW2YdlYGKvnwbZ/Gyqv+xu2Eo7N4ewvAwJhmfNSiIaRwez9tq0ODtqtle2FZRISswmpCZmfvRjxPVigJCzKs/e4S+H4d7rw0cbsMjcu9QmrJcXagfmDCnj1Kbyrqntbc+1tz+mvo+JyTkX2GDcB0jDGM9y30US0XeRcT7QDd2sXjuB4m3kOIWZ6SVshMH4r026fPIqkGR/AdsnNoWV5AsIP7wLX+rSppraJCWGSoM3O6e+jdOtKZeFtyutIcjhQOysL+6XBo8uotnAajve42tx2Sp0hhpdlgkmQVUL8/X3w931bkDR5FKqz/lPqY3FVRO2eP3UM+E7qvALYjuyFV2kFgmnxvn87ZDN3SfrQTmNhe5RsaeXM/gpY/gfQ5y6g0/m+bZNehJ1dc1YWbOzFZfp7ob+10FCTdDRa8SblMS+J2MXBLEeQhjGusZUreTGmXtJaAzU3JZ9Jgbd5yCc4teXjcB1yrHJ64Z2Dt4u30a1zUlavhS+ISAUSU+cFKyeZijOB2fQOXmpL0ordpbQkHUE+cyVETbZ0uVvveczK9KKZArHi3FeGIIExIkhgJGIuMBY0bAP3aedYez6tgYKr2dN7Ho16eMi0Le7TL0Jh3ebKGkYWTNwoemwYI8VoZg0r0t+JfSmZtL1maXKspiJNYGZEdkhKNVZ3uDaMdgfcZ/ZRv9+k97JOe135fellg4doJsOoXhdo2CriWKi57XsiLJhD4Fl9TM3JLdg2n91Xcxk9KkQjYUSccnnbxri5c4uI6qi4vZcIcCc9b7kTGA9fPgTuPoOBanVjKDCatSStV8MYLDB6W3XxBZfl/ebMu6//MJ1tibKGMd2gDZ7MpssU/JO1ec9G8vGDAPtjKC1tm0E4+ZMTFTO85pUmfCWB0cg5pc9e+x5wX3C9+v0mFar0OnjJBcYWnYFeN8EwSSkmRSGQcferwEU3AmddblqV7gsH+Gy67xqNmNPxPFRUZmbtwKS0zWhaM3w7TrJhjGu85Upe1IzDWCkrMEmbgs4g2kJRSdmTx8SDJMfb9Q3Qet9gleritdOoUBZum6KBxBjftm8LvL9L7Lt46BHAzZw4Jz4HR+2GSDuwFUlTXoOLOT1sWATTYQHEmaf53s0VJ9evXg1jOJpItWMmj/aFr2L3Ut97gvexaAlbVgC3vRj8nNRWCVklCof7twFdLja0JC2PguDlZbvRA/PEZtdslYJabyghHXgatvF9kNgYxwytUGQVgNqZqdh7IryMQyQwxjOa8c3KmdOL2cuIRmwYpcJlaTFfQ6mYP1fhnOFMcFwbxjAFCvGaI9EwssDHdidQxVjOXD3Xbd+0FG5Oqj7D8Jwpwl3qzd4Dx7H9PucFFqpn9VzfdrOFOpbBxkgWm3KAYqxEq+vesynwWS4wrvpLSPsYglp94v0meowL23QufcvHoXBf5lgcW0ttk+3l0+winl6eY4Q9gt+Dei/RSMgML5xBiDfYmT2wGMr0wtF+6hY4w/GSdivnrY03pxczfxapNtCsCY/bl3E0SRE+rFhCDVQe5mEsjI039JlRCx4uCofS6wl3STpcwYwtSSeMYBVHz2Ki2DZbCC/Ur+5jzWwIEac3OjM6vulp4PQL/Zs8dZvhQL8HUVQziip6W+iA5JVmfLFUw6hV1h5sUM7idUljdol12exwXSvLrRvONRgJqxO2htHmy1LDfvtwEbIM2eJbYOQJInE0RxEGX3bDcVQJ90VaeK69oc+fmnDL88rXuyQtfyHUcF5RpOUZMIvc1mfBdfNzwO0vBTY26wjc+GSwU1uHnnANfApueeYxBVivZve6NTxnl0tkIZnMokHL8Pu8nOAgDWN5hfPmGw7M661xO+CyO/ybSgc9g+I6TXGwv0z4iZrTi88awnNaTws1jJzA3XrKMi69NXjiEtvWqDW8zTtH9vrGJqMNixWON1lgPDfCWIKCYT9nMv7rG9//v78zVp/HA9uRfcJHuy5nEgNhdRi5x311S4NjE3FByLLxPP6941jyi2IdDqX7LRyBkWX4YcvKPA0jLxi5XJt49IAvdiOLJak3hqN8jCsOz5bMTI6ef6Mv/aEk+5FA09OAzhcEvve9B96GbZDTReLVrUbV2shvfnp4jRJtQ63AcAKE8oUjAhUj2TDGM0EDGRMk3OENjKkZykJING06pEKZaBMWlFPa5OX2oMFZ/SEJScknZODgTCRaYWT0aBjff8SXAYMHL5xFJHm3Uw3kweZhU9CeLJkFbF7mS7NnxL7P64Xz8xGoW6suDjH7yHD57m3g+kf8dYokffwU6taojUNS+zIiPpBq7T56Ejh+iFvMvnM96k99FftvGB60veHkl3B4/y42CmrHeGRORSrYdm+Al2UCYqFxgl7Iyp5zTjD3EIGxMNf3LLM69I7L8vEh3nOJcxxVPHrTWRpUADjyT8KtleXHDKrUQMXDK/lMAmP5x//weRPb6Dhk6cecG9n0OIzy8uL+cOI5ylESFll3ODjCYbgx0cxY4lfzDmfColG8HiEThqMowvzNzLtYRPKb2FiKtuL8yOomrEH6rB9Xf1lwlmmKpTjyc/TVzdDKF1xcGMj9LL2/9YyVUiFPniJQgxCbRUvtOhPLZj5qsVPjvc8twCaZW8mGsSIQiSZQz4PItFhWhz3gaRitfMOWO62opQnTEhjFN1/Npe0IhV6eBjNcgdEMG0FWh16Dfj0Y/b2VulO6BBiNrEGEyUvS6oKIjXOf2IwINkYCxEuPZTFP2TOsFsoqkudBPlvHuxNjJO0zcKw3q6b+lYqkFHgzq4bfrnjX6lptDRZBPaRhjGd4tjUWCJtCtoFHxvuExtfvMFdAUGyTw/q3Palwl1EZePQjlbKy/hVsLCXbhrwekvNW85zhwFt+5mkd9f7utRpG1BzbicPwGtSimDoBKdl4hZvBg4gdekPPhDMuyO8rjfvDVlwYEFmlxw59S/tcRtINJryG0aMvkkMkdDgXrr53c3bIHJLEeePxT8BeBwpnvgfkrDB+Pk9F1zDawq6HNIyJgvgjW/FGmpwSEFTYG3Y0w+pY+YYtfTCaddAoaw/tE/mD1fNq/RrGMseOEP79Sf143lt2uDaMrI9ZcOEwSTpxCI7ZXwKzJgAHdwLT3kPEGJwgnb9NQvKRvbDt4TixrPgT2LJSiJ1IxD9p+7YIwdqxco5mWfmUZmfxElXI3LrMZ+rBbFc3LQuOkSjB8eunSM7eDcc/3wc2GhmDWPsjiZ+ZaDaM0dCAcoVFNgBxxj0WgL2MnC6Xhne+eBfSLcAm0Ww7IpD3ScOYKPgHGt4DHIc2inpTAxq1HzJA8JuwgTiMYltCtI4OHeF5ygoUhdrROSe9gNKDu9TbzFtedUawJB2BJq7Bd69jf06OT6My6UWYgsHBmmk4608bI7Sj5NI7gE6S1F5/aGSJIeIKu9uFpK9fRYlRDd3iX+BkAl6W8sts5U2Lkbv4N826Hevmo/7eddgvFSj1CEVv3a1tF6kH+ZgSjvDC7DvfezjwEhtpJASrBMZIx3NmihPifGSCzXtFFBgRgDSMFQG1HzlRotcH3bUcDaOlcRiNOr3YOdoAt7EUg+EMvjyBMewlaUf49o9xaRNV8QZ6Igo2qnruSZM0gaGOHbbI+sNy86FINIw28393yW8VtpNMvGt1LcAu6auIrNvMaQ4RPa9ilX2Kx8aBBpIFgpXEgfQvvVoRyJkbh1GlDzKz4JEnpWftkx/D4pRdIUstJqd9D+VJSM9AxdUwhikwsnR+0jhq8UAkgzUJjBUTy8cvPQKjOTazrqp1Ir826Rhh9JlgS7psjGJjY1Iy3PJxLxxhmiUHYOMM+691baedEzwus3zqSmi87BbXbQYvC/HD8nFf/yggOsJUqwO0PStm40iSw45FF9TB7AsbWLr2VzktFQM7NUN6srqzaqXUFNzWuakpGsY4Uz8Q2hoyL3851RMlTVy4DHicP+hJvRlNf1u26RNULr8zNNWWsPzMEcSZbaMabEBct4DfGl0aRs45401LyCHpZLa+gpEM1vHuUUpYg0K8RlNh96Xai3ck9x6z/y0Liu1OywzW0oQz3rL6RI4Z7Jshb/heQJkTYHIq3Odeo15ez3VfPMg37jVoBfz8ceBQXtkrh/j2rF/o+37Pa8r16lAguM/uC5x9he/LA2OBV2/1XaOwU2E+sTh8z5NntUC3Yp/N9ZCubTB++VZLzvPV2bXRp2gTfm/bHDfwpxyBSd3ron9RIJ96JFdPGsZ4hpfLOBwNo+Z5YnEb+K7NJhUYzc56IO0/eeYGqeDSgpO5RRAYwxSe68gyJvDOaWSQNFnzatuyAljyq6l1Zm5Z5nMk+OLl4B0TnwW2rY56mA4i8XF++bIvk9CqudafzMp765cJfscsh9y22eDYa9+0FGCOaCJblhtri7ha0bQD0Kqrdnk9YxYTFhkdJFm71K6tUTvogveiLKvTc/pFysfLM9dEycThlqTAy/NllXRmAAqDPkU7hP+XFm5XLde/KHg/2TCWW2zRsWGMxZK1zeCycVjnUKlPa34QbBgjaA9vsNQxKYlOL/aNS4DdG8zTMM6a6P/onP8j8NcU4OdPYBZMe+pY/AuwX/Y2nb0XWDDdpCVpEhgrEvaDO4CFM6NjimDlvXVkr/9Z88rHaqPZUOZMDtW4rvk78hzalji9hLm8Lzrq8cY9I/2ndN9YfD85JP0aB8ZgIdhs4f+mJDDGM3qFqYg1jLG4rcvOacST2YwwPn40Hho2MEUiiPOONaJhZGXFwdqMN2Kph6fYjmjE2xTOJ+lrcnoh4hGrX0bKhCCvzRHZ2Mu1jQ7nObbpu2YrvKS12it6RvPGPSNOQ9Ea32Q4vPEtMDpIw1hOsfFS0/HKaf2MttjbMMpJTQcatQkOfXPjk0DdZtaG8dE7ECrZMIZzbr3nZCad4hIL08SJApJWDEk9SMNTiANp1IJf68/woV4NaRgJi7D63hI16yEvkmYIjGG8SDVtD9RpEt75AOy/6hGUPPkZcNX9KgcrXJtWWCU2NzB4SQfk46o8bu11ZeGGGEr2mRpzXINqlVFwZglKu7sx9ryWhscsh8ShoIfroKpzzOcXNMP/zmXniB5Rs2G8/87rMGvyGGz591us/etLfPr2s2jeuH5QmZTkJIwefi/Wz5uMrQun4pO3hqNGNQuDQZdnggQelVzGES9JW7gsrEb/YaHXeOmt1qYi1IsgYJq8JG1kYJdqGM3g5NHA54I8zTdw2yGJYX2knNDpEKOFWmpHgogEtWft6P7I6y971kLirMZMw6gT7kulDSW1Gvk+tj0zDA2jznGw7z3ac5182brlGcbGQg6f1A/kLL/PtQndmzaAEZySlZAst8x2XsKZjethUPFWPFS6CXWzKiNaRM2GsXuX0zDp21/Q99YncOO9z8PpdGDKhyORlhrwHB3x+GD0Pu9MDHnidVxz13DUrlkNE8cMD7uBFRkhZV+o0Z8FTisc55poIORtlZ2PhUgwC+ngYljDGMmStDcwWG6WGqUbEABZ+yIVGJmxvUheDpImDEeDb0bBJjoAKdW//l84p/4PpsGcmT58DBj3YGT15JgkeBKETnOHjG0rkDTl9cjrF4W6CG0Y9WoY/c844/t3jJ1D63x6m6x0bZGYlpgxPxUXqe5uURwsUFZKNmZDbtc5zidLUq44HdGbd+U5KoxgqCcG3Tci6PvDL7yD9XMno2O7Fliy8j9UykzHwKt7477hb+HfZWuFMo++OBb/TP8QZ3RojZXrNnPrTSrT/sj/q2FV2XDrdpYNBFrHGKnb5nBAfHdMcjp93yXb/HU6nar1ltpsfiV5ctl+qe+W0+kUcnP6jvedJ9w2K5VV8hVzhlyPzd9GvXUr7SuRBit1OEMeY15fSLHb7WFFK3LY7PDYfMOGY/cGuFv7vBGTbLagvlXzn7N7vfCyP4RP0t5Ngd/VBiSfPIIkT5G/jzx2O3j6A8fR/Uh2FQGpSWH95tzfiWWnECp3hH0/uWHz3yvh3CN6y/K2R2MMiZexLNZ1G+1/c8Yn/pOWyjTtJQUhY6KRuhleG4RnkWkYpfvtdukCpjZsGVPellKvJ6SO9N0bkN+yi++YQzv844BRHA6H8Bc0XqkIbdLn0u5wcscXNq465XXqqI/hcSZx6zSC3WHXfPbl7TUy3jhkAnGyjvEx2RF6Du37OjBzqssfwTOss0yQF8saybwUkftl5cwM4X/OyVzhf8e2LZCclIT5S9b4y2zbtQ/7DmSjS6c2igJjrUqVVL+rYVVZo+WrZWQYOkZPuby0dBwRy1eujGR3AXIzMiBXqNeukoUku1ux3iMpyShbhET9rCxhaJQmqKuemQkx83GtKlWQ7CkMLJ94Pf74gXraLETf93pCyiotcFZKS4M04ZbNZhPaqIZaO6T7djkC73rOpKSgQZM9MuJ5lNqWmZqGUwgvoGpekk8Iz0pNxbGy7TUy0uFwBCYmtUXfNKcDbqcDkQQaql2liv93rZeZAXtpUlAf5WdkgKezq5yWjqyyMpE8X1rHGq07JzUFJ8q+R3KP6C3L227lGBIvY1m81G20/yOpm2WH5gpuntCxzGjdDHdqBoTAOnYHalaq5FfSpaUkwzd76qNmRgbsMo3X8eQkyDNn2yRCS91KlXznDoOqGRmoJBsn1TKs1MvK8l9bUWYl8Cz4KqWmoprG2AuF57yocmVunUbITElFddXxLXgZuWpaqqHxxiH7ReXHimWz0gImNnUqV4HHzVf9Kd9/gdG7RmYmPF6vQtngUT6tLEe3WHbnMXGGslBgZBP7S0/cjaWrNmDzdt/tWKtGVRSXuHAqNzjW1JHjOahVXbnDs3Nz4XK7BYmXXYT4XQ2ryoZb9/H8fEFo1DrGSN22ooDq/HBePuw5OXAXhNpEHM7LQ3JurmK9pSWB9ziWk9fFbAclHCsIiCWHc/OE83ir1IBr8JvCtvQxd6N2ZqZmm72pGXDd/Toy926Ad+ZHuvr6VHFwflYmTgn5iw32HW+fdEnfVS04owDT3imdRyQvJI+pPk4VFsHj8QmGOfmiqA4czc1Fab4+EbSwpBjupMhieB0+FTjXgZwTSC4T5MU+8lTnT1WniopQonI/yZH3vdY9Hu6zW1QQGFfCuUf0luVtj8YYEi9jWazrNtr/ZrTDo2BXZ/O4TekPb0rgWc7OLxDqZWULXcb0ZUfYGFIU/BpZWligupR8MEd8zTLOiYJCnJI/ayrL6LsvvQdJ374Bd9dL4L5oILdMblERCjXGXn99p18K59xv/d89GTURKXklJXArjG88Dd2XKetRLT8DRS6Xrt/cwdTJEsSxSl52a6uAIPd3zW2osjcNrlL1cUiJ9a2OYnBxW0xft12zrKss9jGr1yhhC4zMsaVNi0a46vanECnsAqVqUfl3I8eaVdZo+dKyAUfvMXrKSd3zS9lnVp6zcuJiJnNldXHrldQj7GvdTdZ26Xk8vvNcMCBQf1Kavja3PwdIy0Beq25Idn+gqx/c8uux2TSPU2tH0D5Vexev5nkk3WIIt5A1wjdouCVG4+xB1TPxCOd2u+GN0JjddTwb2LNJCKnjKi7yL2X5+2jXBuDEYaBqbVn7vf52RvJ8aR1rtG43C+Dc+UJg66qI7hG9ZXnbrRxD4mUsi5e6jfZ/RHUrPWtejzn9IXn5lI7XHoOOdS53aegYUsoROiUaRhdvv07YWOCWn09FYPQ2buu7dgVhkcE0YXr709PtMpT8+bXkBJE7ArKeMTq+nd+8Lmb+p6wPldbjlAmMeu/hrg1r4+9te1XrViLJ68bnyeuR7k7WLGsrEyL0zkVSwrK0HPX0EPQ+rxuuG/wsDmYH1JnZR08IXtKVK/mWZ0VqVstC9jF9bxSERrgb3sMaqWczL6OM1PtMr4dxOO2w0itbzWlFz7gTUVgde2QxCE3xkvYCk0cDSg4sJUXA+CfiM/c4j+JCX3vnSCYQgjADBaGKaQJNQVpPkDOewTGGNyTwtKNB404kTiYWzDda49rS35T3RRoRJArjmyNMy/NInFGMINowhoM9HGHxsou64/p7nsXeA4eD9q3duA0lLhd6ntnJv42F3WlQrxZWrAnkMiQiEORs4TxEtjAExqTQbVYgv3nNPJeGhlGTSAYn8bqkg7URAVCIwxijuIPxKjAShFW4+W4htkgyEykKjI4IBEZOezhCbVDe+oiCb4e2T82G0RTU+tyMc1vcfkeYArrRcDdGtdMiEudswxjqudHPDMU1V1wgeEHn5ReiZvUs4S81JVnYn5tXgCnTZmPEY3ehR9cO6NC2Od4e+RCWr9mo6PDicSbD3e0yIchmSIyqCo9Mw1i5OtCck/dYjIll1nkYzoCG0dP0NFmIH4Vgq01PC+PUNvPfIBn1W2hoGHUMok3ah3duIa2gnTP4GQ2rQ5lNCCIqKAWxN0vDKH2epSs2Zsx5vDaG+6JqhoZRSyBjeayTU5X3q/W5KfODtS/E9rA1jNERGKMWVuf2G/oI/3+c+GpIeJ2pM+YIn0e8NUFwKPjkf8OF5el5C1di+OgPFevMvvh2uBu1FT670ysBy38O5zoqxpL0TU+H2JsJXDkE3m0rwz5NULYV8XNBwCDWfdkdyJs3BVj6h3Ilt74IVK8bHw9vparArS9EXk+1OuEdxwY1sR/Zsq/Sm/ORfUBNhaCwbECNlYYxj8xHCELubRwxzGbMycYGB3/s1QNvTOAIUV6nZIUoEi0pp32aGsYGGplL6jQGrn/UZy7DQ9p2SzSMxg8RfRT0cDCpMuq6jMfXYHKTETzstwljinBGS2Cs1/lKzTLMS/qZV8cLf3ooLBMWGZ4zepHAqLZUzBMWRVIzlQJDhJfpZetKoCx+ICO/+enqAmNYwqJFywMZOjILKQzUtu1r4W3eMbLzM/tP8brycuCYNxVVkpOQJ9dizPwIuPNlfh2pGVFM3Sdh+R/A2vnRM6ghiHggjY2fHMxakpbWFYmGkdeePHlQHcArtUGPtg1jozba9aqVYY54cbYkfapYv6b5c3d9PF0WkO2Ik91XytlepBS7PeVrSZqIMmbleLaFYcMoe9vxmrVUrHZus9DjpKNwXsfKP42da+0/nLolGkavB46lv6LKek65w7uBf37g18v62+hktXM9Imb2V7QUTlQ89m8LfP7ubWs0jP5sL+HbMIoerkHknTB/XN29Qbkeq22ccyXXU5QfF04vRoQst+TzVmdV3cex4N1GYMkh9HDYGRybMRIjCBIY4xmeIKenrHrB8LyxI/IYtkVZYNShOFfMc2rQZokn1LEJQRzYtJYZFCYkMWi6IchZhSDCQxpipLTEmjzNPIHRDI0ZJzxKxI4pYlvDWZKO1JQmyIvcaYGG0fg4KWZS0YM9TI9paapASzWMCB8SGOMakzSMUng3vnSb3xvbrj1I3PkK8NB72g9xz6uiK+ToWuYxKc8pV2CUaBi1tIROn8MYV0tqdOAlgZEgwsMjMf9wFZvvJS2coyyhgNRGzyqnl0jHAvG6OWN7cd3mGgfrHLeU2ijtk+QU2b7YLEmfVUPFSUeGXZbiVU5aShLeOS/UzrNmKt9285zm9fHmua2QmuQMtWHUgbxcJDaMJDDGM9IfWutB0fsQ8Oph9nLyc2p5L9dpAtRuBKRXBlqdoXy+GvWBnldH3u541TDyBEw24Cks7YfQ9izuZjsLqm1YwxhmX/63yPd/9bzwjieIREeqpZNkUnEUGs+GoUhG5bL/VcwVgDhjVvqesiXlgzvCq9Of/MAW2ZKy0fHq2EEgWxa8WupRHSMN4wWp+uwQGVLzb57H9PXtGuF+V2iYwSpJ/GubXX0nHindiEe7Ngva7tYpvslbYLeFrwGOKJc0YTE8ZxQl2MCj5z7gvdFK33j955GdTy74SI3EmVeyEinp6u2JlYZR2rdsgkhNR52Z7+OoYY2Cgtei/7q8ho3ta82ehBNrFsB94Y2ICn98AWxbBWwP5IAniAqrYWSRDSa9CGdaJpJOHTXvHCzyhFRYlI5D6/8FTjuHf9wP78JZnI/aTuAIbz/HOS5zy3LkHD+GUqltphHEOsMR0AoD6VBVkdWdcngXPNPfh+v4YeCrUcDNz/p2JKUEok3EyBmv1MDyr01jSbp2Mt+7uUQjtVjzZFnGGJ2/jTwkHi1Jl1fsRgRGvdlYOD+5JMxDYElaQ2CU7lcVsjQEpljZMHL61smMxw1rGKGuYdQSQDmDfcbONb4ME9EKq8MMyzcs9mVSIYiKrmFkmv2DO2EXHT9MwpZzhOP0UvZ50zLlA7csh33fFiTnBHIPawfu9sC+dQWQezyyQOZ6s3wFnVynWCEb+zN2rIbtZJmAvndzIJ1ikEIjukvSN+W3Ev4nG4hAYtfQMCqhZcIot1kssTnDEhhpSbq8wrMtVEC3FzPXhlHb6SXEW1C6X02w0VpWjZWXtBS/g4rHHCP3oCVp4wKjn3A8NM000ieIioL0uTHTbjHoHKWcsDo6x4loP/PiuBSOjaXeuUhLKVEqCq3OmC1Ju8q0fklGBEYEcHCOU5otHRrtkh9XolvDKDtPmIHFGSQwxivNOsJ9wYDAd62bI60S9l3/FErVHEwUBoCgDDuKOatlN5nUe40jMOq9Jd3nXQfTkXvWaVF2rUI6LTMmC+mStJaWUFVgDMPpJd94wFiCqPBIn0OrwkqVjUulfQYL4+PhS+6Et26zyIU+jpe06QKjkRf7ax7UV06rTlHLWb/MQaR1N+CKwfrboeO83ZvVw97zMvDYWa0Ege3P84JjHbvK5gMjGkabhnA20rshLGFMWtOYc1uiWcnx8Jaky77WrJSJtT2DQ+4klMBokxu7VmQGPG7o4XJ37Q1X1Trw9OivXi83rpa2l7RNLthIv/MygyjUExWMvhVLHFRsRpdleVkJgsLqaAw0v36qvC+ciYvZI7LJ548vjR9LEBWVTEmwf4tMQbwsXalok5ecioImHQI7lV5Ul/6mXbEeYXNDmWObHpijjNyGMVN/PMGwNZHyfhd/E/F/33vMOa9kDnyugVfIyvK6fSN6NKuPHkUBGWRHcjWUuH1tchoYi+0SpxKel7QSRqLqPFga6jSjX8Poo2uD6mhRcixxBUac5Jr0EjxBT+7RqhSeRX4sT2DUoWG0SzwHfRukt45KuqpY5Ac3ahgt9Wgull2nFiz4dsj5lXJJc9ij8uCrHZtzBElvDUbjiU9INtqALSuA/w0BVszWajlBELznOBaB63nP+tj7gTlfmyMw/vQhcEqHRmrut8DnLwW0luL4bUXiBrlSQt7vq+YGn1sSYse+4k9TzlvNW6K4JPzKqZphaRjtYS7/RpKBRQ15C5xlAm04p4svgdHipOAJjVzQk2v8InF64cZhlNkwygcl6bIv15EmhhpGo+csu35hwDKajo83WLO+McM2SdU21Cv8JnZee6WBhwmC0Eb6HFllw6g2RvHGEb0hffSOWXrGBVaXYJrjDra3tGQc1/LyEIVWzrmNvtgr4FWbYr1ev4YxyRvmkrSB47QExnB/AXm+8vJjwxjNwMMsPqBakvN4I+SBldnbKQmMbPlDmoNar4YRGgKj1HCblw2gZgNfHeF42WXV0i7DQvlwQtJ40yuph/mRksS0sjLnHcMCI2dAkF5zJMtbasdSkG6CMA/p+BYFDaOXxbEN2sA5p96xQ6/9o676bHxhzRINo4bTiz/bTOi5bSURRHQomx9KM7LgljjU2GRzHvN3ETWMtdyyFIUy7DYbOjZg86w3OHC3rFySU9m+/rLUPCSppAfkpoXUgfyozjiJZKcDqQZTEcaFwGgTPaGEL1E6adPTgLtfBfoNRcIgf2jYwyXtL6UHesjrgGg7o8uGUcHpRT4o1WyoWmfpLc8DF90INGkPwwx9CxAETj7elDTg/rHAwx8Eb4cNrvvfBXr003eewa8CSUlBQrGhW5D1CS/mmNSrL6LJx2ssOC7PlpQgCG2kwopV4awkL5elA54wz3FF77F6XjL9GapEYc1CDaOWwCh+5ylDSg2+2Eup1xze1AzsHfgcvCoOkky56C7zkq7qVtdovtS9GVY2PIB7u7YKsmGUe0lvaHZAsY6eRXsx5hzlLDrhhqCUO72cVnwYY9qn46v0zYknMLJgnVGXGDtf4PvfuisSBt7DJX2IlTSMlaqp1yMcqy0whmgYg5YEFH63sy4PxNKSokeL16Kz4i5vtbr87Ua1mVk1gZRAlhu7qyw4rE6c08b5Al6zoLsbl0h2JBlb3poxHraDO5GSvRvJv3+mXX7nf8DM8YHTfTcG2LoKmE2OLgQRFkH5o63yklaYbjcs8dlQsmDV21YDuzf6bAn1wl5K//1Ju5yelRd5SlOxzZYkWOCsmgV99Sifm8WONUDang1wfvNGoGq2imV3qGrt2JL00QLfnFCsEfPwsdKNwv+XU/cEBcY2siTNuNWtnJkn3AQtvMMuLdyeoJlepG8V0XKQ0IioHhewrABseVXNo4wFZRUFQt1LBhpL0v4BQlaf/KHlZofhwGvXvO+AXgODi639B56O56m2PHA+pWsNY1AThUxJ/lgcPwRUq6N6WO1fP8IJlhmF/Q4zP/Jt3LgUuOYBwCHpGz0Dxn8LkbRpCeplZSE7NxeoVEld0zH1LZ8GoKzt9p3rfBMNQRDhIV0psGhJ2nZ4N7y1GwdvO7IP3p/eDwSrZn/h8M8PQMPWQKM2ymUO7lTfLzRIdNaLhdOLXGD07wk9VCmIuQJ1fvsE+3IkKzBlDjTSmkMW1diSdKnbUADuFG8pnJKyRgJ3a6FHZvdyzifXMEZCzDWMQb2gJ0OHGcTCC84oIcICR8MoEXyDYimqEaaGUW44GxxMVU1gdOjrfyO2g0Hni/BhEK/DYBw0G08LITcUF7ZFMmAoHBsNo3yCqEhYEcswBJu1c5GWRKFnqV2+JO2I4ZK0OP7xLsuorblYjahJLosqoqVhFPfadf5ODq/H74UsfDcoMKr9gmJb1co4OL+Tmeqx+BIYo6VhtFBg9LKYUd37CoG0ufuT05DTuRe8VWoYayNPwygtE5GXNC81YMiB8DInE2Y32PYsQLosrDaYdOmtT+iRDwBqd7lWmCAjXDkkNOe1noGVJ7SJv4dRDaNhEkBDThCJRDQyJPHGKk+cCYziPCO2q30PoCpbvrVAVAixNVewYeQ5vUh9H4xQdlzpdY/46pH0yWP1g4uyd31P2X6xZ28/oyX6tW+qqmEcVLw1rDiMclhg7TvbB1a6xDY4VJxVnJx95UrD6I2FhtHCwaH0ukeBC24ArrqPu9998SCcOLMvXLe8oF5RSO5mjr0Hs58TiSA1YHBaQZvCkrQdrnve8Hkms2uTenupDVSS2FlB55D/BkbeGKXtNZJvm0c9npGx9kMeEjMs6K3cLKcXgiCiwiljAYzDwcZMR6yci3aVZRDh2Y0z9AgvR/eHtuvOUdZoGEVfAi2nFx5SEyIjJKcFfW1SVJa7GsAlRTuD9jFh0VM2frOl5aY1q2JCyib8WHmbbgcUXmpANaQaz5Gda2K4a63/u11Fi+g/H09gNNH8NM6WpKNlw2ihhrFWmfdwk3b8Uzdu6/sgtU/k16Qu6LEHeu5UczSMeryk2XfmnSwS5N1uNFA25zcwNHAqaBg5sSqrLZoOS+C1V7wmqX1nRGF1wj+UIAgDnDwKfP+Oz/HEIhz/Trd2Llo4Q8gclTTxGYUCyudy/DXFl3WKBf6Xt4u99Mcinq5/SZozvxTkov73bwDHD/p+MyUhOaTK4D7IUvF+ZkvSHolJUc2MwPyXrBIeBxE4vUgzytxWHGzPalPRIvqPF73aLSL2AqNk8tdthxcpsdT66BUC5IKGvG/YA83sMZh3LG+/Ena9S9IyG0bVY4y+wthCfwP2PUgIU+koBa2i3M7SvuZvJItvzEbwRmrDKNpFknaRIBKGrSvDdzrRAVtGDRmPzJyL2CrN6nmwKWlLFV5e6/04Bo7lf/iyh4llQhI12PVrOMMkZNVGbRx2u5B8/CCSJzzj+832bdF3kiP7dLfHtyTN35ekU7ll1OklyausOAkIjMrndnKif3vK05J0bJxeYqm60XlurSVp8eGSe7NFmulF1LVreUlLfyvDuZt5AqMsELnW8f7PnCw1IkJ9Fv3W3CVpmQ0jLUcTBCHB5pGZ3kTzpVJp3uNtlwuMejSM8msziqLTC8eGUSnItxYGVrJYDEbRhlE4JwKwwNdWaBj1LFc7VdbDHTyTM9NaEAcCY5BWqGptlGZUsf6ksdT86BVWQzSMCqmkxGvhLXHzNH+3j9BODXhOf9+fWl3SOIl97oIhhLpkcR559iudLwQGPh28FC62UXo9VWrAW7U2DvZ/UHYiT5gvB3qO8SoPmKLdZsSDBa1JE0S5Qmar7c2MwnynKTCqrJYYWUUKw3NZFdExtOUZOs7tNt0bXrBhlMgKdkkf6NUwhiswjj2vZci264u34YIWDblCoUiqZKmcyZU/XNgE7YuNhSCKa4FR/vaQ3eu2cr4krVMIkD+gvCVpoT6VB0Cv3YnU7oGd97xr+XWF65kmZ/NyhUDksm2X3+GzBT3zcllbJOWq1wMuvQ2lfQbDlSVJgchg6wk6l8tteyVLGvN/VC/sKoaTl2mFxc6Unz9hNeEEQZiNOyMreAMbv2IM34FPtk3T5j7C7CtsuJOn6j3tHN//KtXN024a0IKWyjSMSRLNnm4NYxgv/SlOJ+5zbeLu+7PmLjhVBMasjICTadfG9dC/KLwA3fEbuFs2obvTK1svxSaCbZlc2AvRMHq0r0WvwKjD05hpgm27N8DbvBMiYuz9QMEpzglUrkNNwyjsT/flkObWqUNgXLcAzt8+A6pU9n3ftAz4ZLgvfSTj5499tqLJqUKGm6SkFDhSOANGriw1Hy1JEwQhIXPrcuR0uTQ2J5eOR39OBi4eFLpdScMoF+Z4uHUqFBQSI6il6dNE95K0/jE5O78wKBB2ssTZRC3nsxw2A+kVG102h6pTi1ZYHSnpOoXaxNIwyiZ0w+ndKoyGUcmGUU1g1GnsynN6EfHXz7E7DAeesGhUmxaibXXz28bTWvLYtyX0LZt5TYrkn/SlomLG5MWFsBXKNIlKSzKJ8GJCEETUCDt+oBlIx1gmtCmZA/EEMGlsWSX0XtuhnfzmReL0qnep2cAc5vJ4grykkyWCWrIBOUUq4Lk1FBjM6SVJQ9BzqMxp0mVzR7jJp+NZYJR7tkb0lsEjNZArmP8wRCl/NYPFMGRaKj3l5DdkehUFG0Z3ZLlDQ+xo5PmR3AFBXq7pszLKv3Q/6zNnspAwnpXyZpRpAqWCGk/eZAKbLtsbt7rwpzukhILRNkEQBM/pJZpIx1ipcMeN+OAxrmHUKzAqCXdqQhibE6OsYXS5PUFL0k6JANaoSrru8V0qxDENohaNqsrmNxlqgmCQwGhB/u+4W5K2SZPAR0r/oUC77vBMHg3kH1HIX22PTpR/ZsB775vaHsU1GwJ3jgwtd8ZFsoKyJPFymFPK9Y/qapq3eWdNTWZBM0kZK2Be10qe153OF/7YcLSLd6zw+3ElxtCUhorHq20LN+t7hBrGWGojCIIwn1iuOhQX8F+I9SxJ64lgonfuVnKOUdMSsgxjangs0DDKBMZkiaD2S9UdeLZ7W7y9VNtGsH3dmli116fRLWUCo1f9pWFlwwPhaxglnxtl+tIflisNo1xgrLRlqXl1t+su/HOfdbnyQxutYOHMuFmPyv30C/SV83viKjwoZ/dFWHCCX0cDrzyVopHlCVcxNxm9TVhOCFNgZKz8C2DOMLs36m/LqeOBz+nqb4qabFwCZO8JxA87egBYMC2yOgmCiBk22VjjnKSR8ctM5n0HHNwBzJroM7ExsiRtpoaRM97aDu1E5vaVwRt/maA8LsqROxNJcPzxheTcwQLjb9U6Kh7ncruDvKSTZJq9UdA3LzTLSudqGFel1MWQ4jbC/ytONINe1LykpRrGQrenHGsYc48DlarBXlxo/TmDcjCzLjBRq6mE3tR9uj2bNTSM4eb+lAuMRrSv7A2TOX6w3KORhg0yIjAW5sFWmhKqBxR+Zx3aQaU3298nwTBfv+rTJDN4qcCMwGwmJz4XWR0EQcQNztxAUO0mEx7HgePWpyQMssWeNCLUXMkspxfdS9IyJcSxA0j6YiQcWTKhb9d//OOX/c63i2zFCb+zYBocq+cCYt2yecejojNzlboVvaT1UAo7nPAgRWLDKKYKbL29JrZnMyVHNiYKW7yAT7+lieglfdhZCT/Z6+Oekk38EMUWmNvFXMPoT4wtTtoWrLuH2uVJBcYodYFeQVC3U4yYJN7k5fRINIxMoxfuMmyIwGjgd1ES+PR6SZtpVyTtL1pSJghCQpA2L5bL09KxScn+2yqnF/l4rTTnKckCvDlGaQ6QX4fsWLtKukSmYZTOH8kGBcY8h28VMFVynBiXkQUFD8aGYpvOdINl9blttpDWSzWMFvi8xF5g9N8UZR3ptSJnpZrzR8fzFO0zvEkpQIee2ga3etBzXXWaAs06mKBhjMCjWd5OA4FOFb2Vw0l92N3AkrrHDW8mZ0lCbxxEM4Vu6aAZpeV8giAShKDMITF0ipOOTTzJIiwNo86VOvkLuqLAqDBn8sZ1pZd+XkIInYG1mYZRqLpMaBxS6WRo9fDi4hahIYIY+XafDWG7DBtSk5y4sVMzZHhK/HmqQ86nMw+0aMPohh1urywdrjRxngUCY/wsSVuoYfTWbsw/J+OiG332gPNDbcPcvW/xBQ9leSq/fCWyRvAeSiYkSR/MO14yUKFNWdjpcWX4DrohYXUMCFNej/AGrXjqwjxpYdl5I/jdXcVCLMZQPHAWhD7kIRgRijXbUhT4LA8kThBEhcahFFYs2khebG28gNshGkYdooLeMVxvCuASyVgqRc8Sur+sbJ5hSiAJdpUVPXfZChUTGFlO6NOLD4aU6dm8AT60r+UeX1imMexnP4yk7k2DgnG7OfaFKRrOMCEaRtjgVtMwlscl6RDBxwoNY8gp5Wnu+KmHPGVOM2jQyoRzcq4rktzZ4pItT8PYqkv4nr1yTZ/aWyPL2CKFPWBKyyx7NgHfvS0pyznvFyMRFq4SgBcb0eMREtTbDu0Kjj/22yTrNIysLSLFAcNygiCI5JzDghOG88d3Y9sQNuZNfx+OWRPg4I1TGhpG50lJ1BHGyjlBsR1V0eunoCRc8+aYMOMwijaFfHxygkdFEG5emR8mb7i3Lcbm1xQ+59qScb13X3BzOYLqzOSm0KLAnhzQMNqYGFvBlqT9YU/EeH+W2DDKkJ9D8ZQmLhnwBEYd11p53T9KFSoLO8zzW3pDlhSHLI8yISrl0I7QY+W2g2p2KXKnDvYgK72x/f09sH+rZAPH6WX/NmDaOBiG9SOvf8vaYl8xO7Bt0c/Aqr9k7bYorNLxw9bUSxBEwsKcMOzbVsW6GYK3sWP9v/x9GoG7qy39JfDl9899f9KwPVrOfHrnwSWzQrfpSWWoVLc0IYOGhtFftYqmzsM5fEVKPby5eAv+O+ETjFM44bp5GsZZp7QVSCcdqX6BkTnVyJFuKZcCY8AWL4oaxpCfT8m41kSBkffr6bhWm1K6JZvKgyIPfs4eMI6hsY13rFzrqSYwyvcJgbIVysof8pBA3fbwl4cFgZFzYl42HCPLGQRBEBWREA2jU9lmUBxT9Y7dcttuNYGRt1zODQOksJwbElc4+NhQHR2napV52s1piyhgFpUJhSmc0He847w65A2WCUbq9KIeuBvl2IbRLzDa4KnTBDjzcp/wciIbmPO1NeeM1FO6xekouf4RHN24EEWOZJSsmRO8n7W/z13AgR3AJbeEHq/jvDYlxwk1L2m5hpE90MJDnaK9fCxvk1p+UOnyqz8Vn8I1hQwmXn5aqHA8ls+7lv/Yi32g5Yhjpg0jQRBEoiOfG5p1VJmXVFa79AiBaooT3vxj5KVfnlnNgNOLHg3jxJSAXaKIKMgVlznNNC05jqPO4Ixz7jA95GuU5mNOTZ8JAdNbymXMIXWB3zeVaw1jsGaJLUmX3voi0OZMoOUZwJmXARlVTD6nrCdrNgivnusfEf7ltu0Bd6uuONj3vuD9LEMJc5rhCYtiNhatpioJbFvLljR4N7wQv0oqMHpDHyimYeQF/ZbbMJ6Q2aqo2TdWqa78tii3MZTd6I51800X3rwNW4cGyxX7a92CwLa8EzCVE2VL0ZtMDEJPEAQRLYryVFee7MwhhZk6MXKO6BcYN3LGRDUNIy9CCU/YqlSdf3ythsHfJRLWfft+R/dTUjOpAOtTAg6LajaMPMQF6EO5gSX6Su7i4DKcazC6npnpdYUc069ou6VOL864icOotiQdiXNINGIiluGR39zynMdydITr4WoYJzwLHNmr/JBm7wWq1Qm+Drkg5lHSMMoExu2rOWkJlZerFXss94RiyXrTxuDI9nWmh6LxJqVylqTLzvvrZz6bSRbwtSDX3Iw/nz4PZNUKZGkhCIJIJOSrRzJsbjeSPn0WLpbNio2jWmP3R0/6Ilkc3Q/UrK9/nmUZruTwlCRKYX+8yse2LOQ76UxLa4UHVxwJlVEMCozZJ3MVPaCNahiLbE6kyurQsr+0QhsYBxpGmcDIW6Y12xHGSBYRK9FjwygXythbnSgsKgmMwvXZZMvPcg2jOyRNVeBYCWoaP96gohg7SzlYa8qRvYHWmmpPyFmSFs/LNLfM+eXgTpgOe/smYZEgiPIKC6HGnFdEYVFt7GbzBPOgZmkJWQg0I4oYnhDKO16v46pkLmBexjzWu9JwLC9f15K0Gl6VY41qGD9ytDRUXm1JenuygjY2EQVGrjRvtoYxWtldtAgSzmw6NYyy20SPlpC3JC14NPOcXmTHqtkU8kLuRCrcm2pPWNZXQUvSMQyWSxAEUQ6wGcm2Ip8TQhweVeYMIx7RBgN3s8DXPNyyOdbokrRNWpeCUGpUw1isMG3xtZ9eVacXnne1XuxxF7ibJ8wNeQPo2jui0xw99wbjAqPVwkXjdoHPCjdliA2jvE16tIQeJS9pnccqwfOg1vtwKfWtmdlRRONqLS9pgiAIQj+GgmfLyhpZReLNP5EIkZJ5p1RnZpXqpcbi6Z5btCfIq5mHNEe1vz0qmclcnF1MiuGlyXCUCalKGsZSm708xGEUf3CFq2RZVyIgt213ZaFIcVnSYoGxaXttQUv+44YIjApaQml9goZRJog5k/hhdaR9s/Q39YebG9Sbcx1r/9Hftyd0Bn/VIVw61v6tvCRNEARBKMNi1urJiS3CmSvsBblwfi9J2CDaJUqXstXgzT+8eYsFDjcsMPLFn/pOa6NmlApiV+g8OX2jshlTKVdg9KKqI3RHcpJTVbhLbA2j3+nFN/l7rfAFDzmlXSVlnQQt2eKkLABpJCjcvI78k2FoGOVCJsfBhZ2P96YmHsuEMRbOSFVg5GkYOeV+maC/b/UmsNdjmM3z3iOBkSAIQpt5U4G5U/n7eEIbZ65o9NULsO/dHLyRjcF6s3pxNYecMVxpDg85VNuGMVybRb0onbewxIWbC1oZ0DB6sKkwtK6kMrMyZQ2jLYEFxlgE7jbLhpEncIW75Kn0I4bUF44NI8fpxW5X1zDygl7rsmHU27cmCG5aye5DtNckMBIEQehGaT7TacMYsegVqQ1jGEvSVs8QbpU5UmlZ2s0TGL1euDjzWbIoMJZLDaNsUi+qF+oNZDpygUopvE1ycKJyfQJjmLebkg2jitGugEQQ9HtUh2R64YTVYX3A0x427VBWL8dhRI+Rs24bRkQO87hThQRGgiCIsNE7L1llH86bf4ycR2X+VFqStnqGKFUTGJWcW5hVmUz8tiloHpOcPvlGyUKzNAIxPuYCo1eWscTF4tdFW8OY5UsSbhjuQyPdZuCHURS0NDzKpA+PUmgiVkZ2nLdaXQUNo11/uifew+xMVi4fVM4Ez3ct4U/UQEq97OMlpBJBEES8ExI/N8rOg7wh3oiGMSc7+HvucR1L0tbiVhG7eCkDGafcXrhkGlFmw5hdFDoH18pM8+2PBy/ps85oj8/HPo+Vf0zCgdUzcdmFZ4eUeWLoIKya/Tm2L/4e345/GU0b1dW/JB0N5DfKqcBNZIj8U6HbjGiwdm+QtEnh1w15OGzKGkbRozokNI4HSAtOTSScT8GDK2hAUCvDzj37y+BqWbwtPaiFSvr+HX11FPuSu3P5+ztfnDC5ptgMQZUgCKIisHGJ/rA6jF8/Nff8xw/qn2NZMoYlvwKr5vocdlb+BfzzQ3CZ/xYCy35XXZJ2eyNbSL9FwQ7RX7/KKpybsyQ9Kbk1vt2wL0QzyQTGXzfvwYRUifMsgFSn1pJ0FDWM6Wmp+G/LTjzz6nju/vtuvxZ33tQXT4/6AH1veRwFhUX4+oORSElWiMQuNj6a+XzlGrhwbRo181x69TttKKn+teqQCJT+mI08LZrcE1zJhlH+UGq9zS2fHdxeFpxVD6JDCo+tK/XVcfKo8r6FMwOfeXlPCYIgCHWYUoDnUKIUAmb1PF+QbrPgOTYqCaur5wJ/TQF++8znsPP7pFClApvX/pysujQcyQzRdkctTFkTSM9nVMPIs2EctmAnThYUhmoYvV643R68vvYIX2BU1DCGf4WG1S1z/10h/CkxeFA/jP1kKn6f53szefD5t7FmzpeCJvKn38vyBXOENbvXo6kKFo05pZ5A4n8e8ltNLOtyOIPFMIeDW7fSuUVcbnmIz+C3H7ud+TEpY3Mm+c/ldTjB9Q+W30A2W1BbPPCiVCYw2tn12QKipq3szyPX8KktK3i9wnlYnCclv2WxHdJ+5l0zt+8k7eP1uYY7i+9cbpdi/7JzinU6bXZ/HzmcTjg47dFzP4VTVm95f1vLnodYtcOMslrHxrqvtcrytsdrX5fHuo32f6L0tdp1mdkWs8uW8JQ5Xo/iMSWyWVG5nIhNsR28+SfJxspHNk6WqCxJ221eWb36lVl2m10234Uey87LmxOVFEdiW3gaRt71pyU5hfqtCNxt6vpco/q1UbtmNcxfstq/LTevAKvWbUGXTm34AmMZlZKTIAsgE0L9rKyQbbUqVQr6ntuqG1xVasHrTA4ROsSye+o1C/4Zq9VF3Rq1YJd73Qq2f77OrZeVJQhdpemVsffml+AoOAUvy6MpJ7ksfzGAyimpyFG5Hm+T9v5rcqdmgB+FKVgkstltQf1QlJ6OgzKB0dPxvKBjnA4HUpKToTPwgAC7anYed1qmQrsCv4dUd5menIxTOn63/XZ70O8j/x13Ms2mhuY3ww4EsnUqnzMrPQ3iO2/VzExU4rRHqR1qGCmrt3y1jIy4aIcZZbWOjfdr5G2P174uj3Ub7f9E6Wvp/njua5HdTkfIizlbklY6Zp/NFiTkKZUT5w17Spq/jLysx5mM3bLjGmRV0dVuOdKyO1WWpG1eeb0yO0iN8bvE5VE9lgl+vDmRkZES6mgrtsVlKwraXsVdiFqVQn0+mlXJwOasLJ+mkROqmMkQcSEw1qpRVfh/5FiwmHTkeA5qVfftUyKvoECz/v05gXqZZM06Mjs3V9D0iZRccJPi8Ydzc1HqdsNTkAdkBP9ge3tcC+eMD4PqFl6Uyvp2X/XGsG9fA9fVjwnf3TxhUUZuvraItteZCfvRffCm83VlNpmG0ev1BvWDJy0gZnuT+F7dLmcK3MXBN5tzxWxVgwSPxy2cx1ukoF/MORLUDpHibWuADucHbeOVc/+3CLigod/mUf476jETyD/Bj4Np37hYOKf4O548EBhycnZtxilOe5TuJx5GyuotL5Y5np8vDDqxaocZZbWOjXVfa5XlbY/Xvo5VO6ys22j/J0pfS/cz4rWv5XhSOVFEvF7FYzxr5wPnXw/HzvXCd612eNJ95+e1w8sxr5KO7eFeo33PJmTKBDCRpbk23b+LnOzcU9ifo676Yt7OvDmRUatyKpAur9PXllL5jrJ97NrGJrXDQy6fT0SS1yXUX+rm54yu5zGWuUZK3HgAuHUEbOapxllH+rdrxAB0eby+m4DjYOOp2yy0fmHJ1ldnaWZVn51lzQbQi1uHI09pSpqvXkVTRXlYAFk/iOnv2I2ScxillaqFVuFwwiMVPH/6ALad64Dzr1FumMfjOw/vd2HC3j8/cH8Pz9ZVqD3rIxzuM0R9SWPxLCHiv5PZPKYmBf+OOvGcOAxMeR2oVBXOwlxUz6yMoyUuuHesC6rLzWwdf/4YSElD6QF1G0sj7TDaZj3lS8tsRmPdDjPKah0b79fI2x6vfV0e6zba/4nS11JBJJ77WhWvR/mYJb8Bxw7BfmAbkGzXVbfYJyFl5cd9+YqhMUZ+DrFs0o9jsfeiC0LKXJnTHBuzDwWVnZjcGneVBIKPH3VmoIZCusASd9m8WUbTLdWxs9WxkJBESm3ekn0CqMNvN8/mUuy311btx0OnlW0rm7uZQRmPDd5K6Oxfl4xhWJ3soz4X/JrVg7V3NatlIfuYgnu+iBle0k4lx5oyxPV+XjmtcDDhOMbI347kWVv01B+SoUXZS9peUqzSDsnNs2ExbCX8tys/amF1NiwKDlcgiYfIWpe+b5N63WL921bDVpSv3wM9pA4vsOs/YN0C2HeuR/reDXBsXgbw6ly3IMRBhyAIgjAONw6j1Bl08zLYCnSM4UZg3s37tphSFZv/PIdCja3mbNkLm8wpZHdJ8Ny80qkc+o85oUjZeywHK1PqhtgeKlGsojhzycQ1JriKFBSX4Lu01sJnZ5mMoKQNzPGEH1rOVIFxz/7DOHzkOHqe2cm/LTMjDad3aIUVazbFXmAUBTgHp1wSR2CUPhThZKCRH6OWyk5BYNT2kuaE1eEJykYDVouCKjdwqo5sM1GBgnATBEFEnWjFYZRicha4Ep3Th9fAnOzhzLNyr2g1C8LiEo7RYRlyDaPceUX8nlR2AiUNo6ZMYeaSNAurI42r2LB+bbRv3RQ5J/Ow/9ARTJg8Aw/dPQA79xwQBMgn77tZECJ/m7s4coHx0Y+AMUOAJu1RcvmdKFwwFchZ7tt3x0igThNtgbH/ffxA3RJnFT/SH//iQcDpF8IQ514d/J339sACle/ZpBxQWi6MsSVsrbA6vGvTDDIu36eSGlBPPuuIIWGQIAgiLolFxiyTI6KVKIUGkuHR0PRpCYyZMj9vNYFNKXA377xypx1XWQcl2YFKqSm42yXL4V1GdXv487Vhkb1T+xaY/e27wh/jpccHC58fHzZI+P7+pB/w2ZSf8cbz92PW5DHISEvFoGEvorhEw0ZRns6OhygsDXxKEPoO9b0vsE9LWBQ1be3O0i/oyJc2q9dDRPBU9H63eL25pGXkHgvyKFOELdWy69UTLFw4r3jj8pJYym6bmWUxOf/82r/J8ccXvg8/joNl6LB7JQiCICLg98+DviadOBTdaLbb1/hi6W5camq1+46dwhFnwKHnYBLfkfW7bUeRb/fNrUyL994B5TqDfAXKaFucrXtJWs5zjsBqbQN3cEyQew5X48ZXZBrGuzo25taX40hDTZueoHUmaRgXLV+Pep2vVC3z5oeThb+II7qbjXQp+t0HgOIC4ImJKgeY/Ba1Yx3QqI3vMwsoygRgUbOoILyxWIOqSJa5bWoCMPNYe+c+9ewoegVV+dLA9rXAm3f5BLgyAdixei7cq//mBzc3CzGTC0EQBGENK+f4Mr54PEjylKJ+Fe0IIYbQCvQ9dQyQkqp/7tJJYUE+Wi33oqgkCRmpKcjJz+fGR9xx5DjqnkpCYbEDmakpyC3aDXTn18niImvBwvbo5duNAbnofXcjvICNwudmW6pjz7HdQe11eQMCIy9yTvU1mUIA8L8u9CZuLmk/8hiISoSTC1gUqqQ2jsxRQ0tDZbLNBKSOJuJnDYExOEuJBloaUyYgS29otWUFNbtEXr/w+jISYVHPkkcslkUIgiAqGizbS3GBoJRQdXixxB7Sa7qwKMJWPl1uD3Ly1esvKHYJM2dukYJjqcqStBz1dB7KlEqqzi0KlZdESYEJjNKyIkxYZMjSliRmWB1VhxApdZsFffXUaqQu2AlClK+DPPWay7YjygJjYaggWKM+kJkF1G3Kb4IBgVExv2c4qNUVQeDPhDe8JgiCIMyjHL34u2Ve0jzCnT0FIbDsYBZPOnR/QMOohjNMgdV3bLygVzC69fmgr6W3v6RenmnKygJau/sMDt4uvjmlcQKTRpJjWglp2BtP2fV2vsD3x6PUBZv8xlAJzRNSVqSAnw/FIWgcFajNt4HwnSgKimk959D7kkEQBEHEJ6eOo7zg4Qi/pxypqOwOrC5WF2I4Gp9DpYuQvKDi4pK00+bFTemnAAVl6AFwHHwTZUm68vr5sC/8ie8QYqUWShQY//gyOoJR7nEge4+2cCfBMWuC4FEl9A8TbPdtBWYp21wmnVRIYcSCVnPI3LwUabv/g+3wbvV2/DUFKYd3RVdgzKisbVdzdL/17SAIgiDMhyVd2LZadU4rDwLjDdn64zAynkdb4X/fnBZB2/cWekISPHCXpJndJQIxGhenNsDthb4YjYzH1uZgQ0ptJKSGsfrCH1GUk4OS5NC0N0EcPQDUCMNLmRsWhm0r+9EOlWW0LMxXXnod/ziQmwM8MUHzdLatq+BteXrwxrlTgcU/A+mV9C+J//opHJuWAllZcC6YjpK/fwhPtc8eShbcmoOjpBB1fp8gpBEqqd8KGDScX275H6i3bSl23vN29JakD+0G6jTW7blHEARBJBBsXhLnJo6zSSLC85L+c8seOOFAaXd94WxeXbQFr8KBZMeeoJzTB/KKgTTpknTwPOz2L0l7/TEYH3C1wYeLtgaVO5iTi/7rsrC1VQJqGHXboxlx/tCqVypEioIb74YVNWmsvN5Yg+JSc9C2smOldWgFuzbLrkNvUG0j9oDR0DB6rYjtSBAEQRDW4LHQrj7YLzZUaeMqExnYkjT7k24zi/gRGLUEMl4mFj3wOixIYPQo2yuKghET3nQKjDZFjaZc6PWaLzDyPK313sBGgm9HQ2CMWfYYgiAIgjBHw2gW8pSFckTP6FuLt6BWmQEjz1u6nAiMGgJCNVlGbr2kZXDOJU1uXqocOFwUIo0ILzzBSzzeUHJ34780C6gadj1GrvFYFGJmbi7L4MODbBcJgiCIOMNjocf3npMcszkJ6fbAubsX7RP+l6oIsDNSJVFjEsWG0Y+FqlzHjA/h7jdUh4aRSfCSDhZjJIptW/MP0Om8MARGzpK05o1l4Mb79Hk4ajVA2sHtnGrMW5J2fj4CpVm1gf3BNhGWsGK2L1YmC+rapD3Qva+wucrKP1Cw6BdZsiWCIAiCiC1eC+veln0M19VqiSMFLDqITyCUcqDEFrJSXaoiZzy8Ngf/tmzHtDMJKDBako/Yh33fVriVhCOprRwTGsva4ZX2vChU7t2sT2BkYWykDi7hCMNG3lQO74bj6D7BQSa0PeYtSduZN/WBHYgKLBA484QWHZ7KBMbK/y1AYb5FHvUEQRAEEadMX688/+aXshCCwdvUNIyHcnIxbhk/5F78L0lbGbxTnnEkaElaKjA6+PaAosCnlnvZX7eGk020+8OKJeloI7H9VEvcThAEQRAVERdHODTbhjF+NIxWIvew5i1JixrGpz5Did0BSdTBMARGrwnCn1kCowVOL9FGcg3eaDjcEARBEEQCUcqZ6tU0jOGQOLOvuDwZaYYVhjTDiVRQYhlheLmqxeN3rtcM7+Nt0DJ0YxNmJxCcdcW2Z1N8h9VZ9jviBsnv5ShSN/wlCIIgiGjjssU2lqSLM9e7TfYNiW+B8YuRgc8LZwAfPBpWNWwZs973bwY2fDcm8FnaoQ4FhatY5tQx4P1HgDclKQZZOuh5XwfOtXdLqHLQGTAsSBr/GBp9/hxseTnR0fjp1jBKyk0bB/wZuKaYw4Tn/92DpHeGwRbPmlCCIAii3JOy2Ilhrjb+73NTG6P6CpkBYZThaRNd7oqkYTx5NFigYd/DzB9sZx63IsWFwTtFraFEsFOE5XIuDW5DclCYGS9nSTrw0VbqgqM4X1sgNMumMBynlxMsxWCc2QqWFMFWIvvdCIIgCCLKuL1efLw8EC3kBJJQUOyKO4GxYi1JS5d/xSXacDVMUvtDJScYJQ2jJh7jy8nREhj1Cn5Kdp0EQRAEQSgShWS5mrjcngouMEqFKlHgM2NJslTBCUaPhlFEEtrFJv1RSspiB0pxFYUer5ka0B1lDSMnXSJBEARBEKrke7VFqRxHWSLoKNowqsVhTHiB0b5wZvAGtnS8bgGwYZFvKTgcYebPycI/56mjsLHsIavnhdr1+TWMSfqdbb56xf8xKecwkv+agpTs3XAs+813ziOSwJp/fRM7DaPuwN0kJBIEQRCEXu4paYuVqfXxwrpjmmX77q+Jtal1cfnxZpa0Zf+J0PjEpSavFsZVWB3ngh+Rlp6Ok517BTb+/HFwIVl6PduhnfAyR5Nul4ZW+NUoX7Bth0NQGSf99D5KeOn5ROFNpmG0HdwJ7++f8xvLtIiv3opkVndWFpJWzUGtbUuxn3n0Mk/oCc+oX2zc2TDSMjRBEARB6OWr1dsxNytLCIKtxco9h3DtqSzszwnN0mIGTJl44ZEmmFtzVwVaktbSiMkFLbW4fHq1kUo2jBYuzdq0BDTTvKTDsGG0Mog6QRAEQRCmUyKzYzRbwxh3AqNhQYoJeUoBtfV2lqh17HxheMeHg5ZAaFqml3DiMJLASBAEQRCJhEsms5R7DSOzB1QV1mRaQG+N+r5cw5Fo6ZKSff9bnRE9uz6ttpVwHGV0YNuzMXiDLASQrvbIww4RBEEQBBHXuGTpXko5ntPlxoaRkbFjDY4n/wg3s0vUq3ljjixpmUDOEaD/0DAExlT+dp69o1moaS/nfgtk7xFsL43i/G0SXB3OBVLSgIM79Qt/rF+nv+/LdiM6GBEEQRAEkZAaRp7ndLkSGG1eDxyLZsKtJKzt3wpk1Qx8Z4G82XIqywQjagv73OX7rLezDu0EGgWitsd0SZqlDFz8S9jV2nKygXlTwzt445Kwz0sQBEEQROxwlQbLFaUmK73ibknacAzFkP0u4xpGpU6NxZK0mhMPQRAEQRAEhwpnw6iJRyYwyh1e3GEIjEqCoaUaRoW6G7ay7pwEQRAEQZRLSkjDKKN116CvDvnybc7RgEBWmKevToVOtVmZ8UQu+BIEQRAEQYTJqcIiSzWMcWfDqMn+bUBLnzdznZ8/wLGNy+GW2yN+9iLAAmjr9TRWEgytjMPIgnuLLJ8NdO1t2bkIgiAIgijflMrjMJqsYUw8gVFio5hyeBdsPK9pJjQaQVFgjJLTy/GD1p2HIAiCIIgKwSlHKiq7iywJq5N4S9KSANOmLRkrCYZWLkm7JUvSlFmFIAiCIIgI8QqJkH2QDaPUC9osQSsWGkapwEie0QRBEARBRIhUKnLrzfSmk8STVOZ87f9oMyuFnVR4k2Kp04ukbrsdWDXX93nJLOvOSRAEQRBEBcFWwW0YiwqAV29FMsuCkpVVPpakWWig3z7z/REEQRAEQUS4JG02iadhtIIYLEkHOevQkjRBEARBEBFipUcESSoxCqsTBAmMBEEQBEHEMSSpxMrpRUpRfnTOQxAEQRBEucUrz35XoW0YoykwWplLmvHLBKBBS2DDImvPQxAEQRAEEQEkMKoIjDaTYxiFsPYf3x9BEARBEEQcQ0vSDHeMl6QJgiAIgiAihJxerEZJMLR6SZogCIIgCCIBIIFRDJzNwZucFvWmEARBEARBhAPFYbSavZv5251J0W4JQRAEQRBEWNCStNUUF/K3U3xEgiAIgiAIEhhVc0nbrVPtEgRBEARBmAktSVtNaUmsW0AQBEEQBBERhTbroiWSwMjIywFOHg1897hhK3XBvu7fWLaKIAiCIAhCN6/k1Rb+j3W2gdlYJorePqAPht52DWpWr4oNW3biudc/wur1WxG3S9IfPcmMFgGbDUleN+rVqIWDR7Nj3TKCIAiCIAhdTFq5FdPSM3GyYGtiaBj7XdITLz42GGM+moJLBz4sCIxffzAS1atWQdzChEa3S1ieZhYAdlqmJgiCIAgiwThZoODIG48C4z23XIWvf/wd3/40B1t37MVTr3yAwqJiDLyqtxWnIwiCIAiCICzE9CXpJKcTHdu2wHuffu/f5vV6MX/JanTp2Jp/jMPB/a96HovKhlu3syz4t9Yx8XaNeo6Jt77mleXti7e+Vitv9D6yqh1mlNU6NtZ9rVU20nvJrHZEWjZR6zba/4nS12rXZWZbaN7QLmvk2beyHfEwb5QopUbmYEOtLqbGeaxdsxpWzf4cV976OFasDQTEfu7h23F2l9PQ95bHg8o3rV7dzNMTBEEQBEEQOth57Bj0Yp3/tQGyc3PhcrsFibdWpUr+72pYVTbcuo/n56NaRobmMfF2jYxYtdnMunn74q2v1cobvY+saocZZbWOjXVfa5WN9F6y8hrjpR1W1m20/xOlr6X7GfHa13rKJ/q8YeTZt7IdsZ43jGK6wHj8xCmUlroF72gpNapn4cjRE9xj2AVK1aLy72pYVdZo+VKPx9Ax8XKNRo6Jl75WK8vbFy99rae80fvIqnaYUVbr2Hi/xkjvJbPaEWnZRK3baP8nSl9LJ/R47muzjonne8/Is18e542YO724SkuxduM29Dyzo3+bzWZDzzM7BS1REwRBEARBEImBJUvSH385He+8/AjWbNiGVeu34O5B/ZGelopvfvrTitMRBEEQBEEQiSYwzvhjgRBz8Ymhg1CzRlX8t3kHBg17EUeP51hxOoIgCIIgCMJCTPeSJgiCIAiCIMoXlEuaIAiCIAiCUIUERoIgCIIgCEIVEhgJgiAIgiAIVUhgJAiCIAiCIFQhgZEgCIIgCIJQhQRGCzmweiYuu/DsWDeDIAgToOeZIIiKjKUC49sjH8anbz+LRIZdA5so5H9NGtZFvLf5tWeHhewbPfxeYR8rk0h06dgae1dMxxfjXkAiUB5/g/LyTJeHa0m050GJalUr49VnhmLZr59i59IfsfrPL/D1By+hW+e2SDTq1a6BMSMexMo/JmHXsh+xdNZEjHzyblSt4su9rEX3rqcJ40LlShmI1Xh1/x3XBW1nL0hse6LN1buXTcOaOV/gm/EjcWP/i4Vsc4nI23E2RpGGUQd/LViBTr1uCfrbs/8w4pn9B4+g/2XnIjUl2b8tJTkJV11+PvYdyI6obqfTgWgz8KpL8Ok3P+PsM9qjds1qEdVlt9ujMoBY+RsQFRszn4dYMuGt4TitTTM89Pzb6Nl/CG5/+GUsXL5Ot5AVLzSqXxu/fj0GTRvVw7Dhb+GcK4fgqVEfCClxZ3zxJrIqZyLeKSwqxrA7rkWVGAisZs/VZ11xF26+7yX8u2ydILSzFyuHg8SdSIlaD17Q4wxM/+x1bJw/BevnTcbn776Axg3q+Pc3qFdLeDO4/KLu+O6TUdi+6HvM/vZd4U061pS4XDhyLCfoz+Px4NILzsLvU97BjiU/YNHPn+DRITeG3JS1alTFV++NwPbF3wtlrri4R1TavG7Tdhw4dBSX9+ru39anVw9BiFm/eYfh36XfJT3xw4RXhWu9ps8FiCYsrWS/S3vii6m/Ys785bihX6+Qt/Je53bFn1PfFdo384s30bp5I38ZVp5d3yXnn4l5P7yPXUt/RP26NRPmN5j68SsY9fSQEM0M02JIc7ZHmyWzJmDwoH5B22Z/OxaP3TvQ/539NjddfQkmjnlGeKYXzPhI+B3iDT3XEi+oPQ/iva6lJXpo8A1Y+9eX2PLvt3jrhQfwzIO3CdcbTZgm7ewup2HU2M8FIZE9F6vXb8V7n36PP/5e6i/D2rfur6+wecG3wrPQrlUTfx3s92Htvvnay7D8t0+Fe2z8G0+hUmZ6VK9l9PChcLlKMXDoC1i8Yj32HzqCuf+uwIAhz6Furep46v5bhHLJSU48+9BtQluZRvXfGR9h4FW9hXGWja+MTfO/ickKxIIla3Dk6Ak8cNf1imXY+DX3h/eFtrNnZsgtV/n3Pf3ALfj5y7dCjmHz+CP33IhoztWHso8L4++4id/hjodHoVfPrhjQ72Jd9xSj93ndMGvyGGE+WT93sjB+xZp4kKHs0RzkPvpyOi6/6VHhIfJ6PMKPINf0PH3/LRj/xTT0HvAgduzZjw9eeyIu3wzOPL0dxr78CCZ8PQMXXDMMT73yPm7od7EwEEt5ctjNmDVnIXrf8CB+nDUPH772JFo0bRCVNrLc3TeWPSQMppr/dsafYf0uzzx0u3Ct5189DPMWrkQ0YcLqtl37sX33fvzwyzzhOuQ8//AdGDnmU/QZ9CiOnzglPExSTWhaagruu+NaPD5yHC689j4cO34yYX6DKdNmC1pJNtmIXHvFhcKguGDpWsQ77EVq5h8L0OuGB/DXguV4b/RjCaFxiVf0PA9qXN3nfDw4+AaMGjsJlw18RBBubr3+ckSb/IJC5OUXCAKt9N6W8vGbT6FGtSoYdP8IXHbTw1i/cQemfjQq6P5h5kFXXtITtz30Mm6670VBY8mWuaMFa8sFPU7HpKmzUFRcErSPCS9s3O936bnC93dfeRRXXXY+nnv9Y5x/9VBh3mD9wF4s73p0tFCmZ78hgpbshTc+RjRxezx4ddwXuOPGvoKQK6dD2+b46I0n8dNv/6DXdffjf+OnCPOb+MLy46y/cUaH1kFCTKvmjdC+dVNM+/VvxIp/l60V0hOLL+5a9xRTPkwc86wwVl1y40O4YcizWLV+C2JNPMhQUZPEmND061+LsGvvQfy3eSceHfEu2rVqilbNGgaVYxfK3pp37DmAtz78Gg3r1UbThvUQSy4+txu2Lpzq//vozafw2JCBeO+z7/HdzL+E5el/Fq/GG+9/JbzpSpk5ewG+nvaHcD1vfjAZazZsxZ0Dr4xKu3/4ZS66nd5O0Kaxv66d2+LHX+aF9bt8MvknodzeA4eRffQEosnAq3sL18KYu3AFKmdmCJpFKWM+miL8Bpu27RaWt2pWyxLetESSk5IwfPSHWL5mkzDRsuWXRPkN2H7GpRKHixuu7IWpMsEzXvl2xhxM/+0f4fpeffcLZGako/NprWLdrIRFz/Ogxp039sU302fj25/mCOPS2x9/Izw30cbt9uDhF8bi+isvwsb53+CnSa8LWqq2LX3anjM7t0Pn9q1wzxOvYe2Gbdi55yBGvv0pTubm4Yre5/jrSUlOxkPPjxGenSUr/8Nzr32E/peei5rVs6JyHWwZmpm5bNu5j7t/6859whJ759NaCoLjoyPG4re5i4V5g73wzfhjgbBilXMqVyh/9MRJQdDMzStAtGHtYv34+NCbQvYxbSJr7zuffCvcN1NnzMFn3/6MobddI+zfsn2PIJhdffn5/mOu6XM+VqzdJDz7sYT9Ng3r1tJ1TzGlz0+//yPIH+y4DVt2CVrvWBMPMhT/tc4CmjaqiyeGDsLpHVqjWlZl2O0+qZhNopu37/GX27B1l/9z9pHjwv/q1apg2y7+wxgNFi5fi6dHfej/XlBYhDlTxwmTv1SjyAYNpslif6JAwh4WKSvWbhbeuKIB07SxG2dAv17CWwj7fDznVFi/C3u4YkHzxvWFB/zOR0b7J5kZf8wXbLgWLV8f1K8iOafysH33PrSUaHKLS1zCgx9tzPgNWNuZgMA0SUxT16FNc7Rp0Uiw90oENkqeafZcnMrNF97wCeueB9U6mjTA51NnBW1jGpRYmDewSXDO/GU464z2gnbqop5dMOw230pAeloKMtJT8d/fXwcdw2yCm0i0WExDyrTtImzMdTgcwnUywSteYBN3aakbi1bo+51iBdM8f/fxKHz4xbSg7S2bNsTv8xYHbVu2eqNgysHmPib0Mm3qjf17C0Ilg2lTP/5yOmING3u9ANq1bqJ5T7Vv1QyTf/wd8UbTOJChoiYwfj72Bew7mI0nRo7DoSPHhRuM2ZMxzY+U0tJS/2f2AzPEjokVBYXFIW9I6emp+N/4rzFrzqKQ8vJliVjyzU+zMerpe4XPz7waEHqN/i5MSI6VNiUpyYlVsz/3b2Ma+JKSUjz72njd9RQVR0ejaNVv8PWPfwi2WmypaED/XsIyC7P5iiUejzdkOcTpDB1S2CQpxQuvcI3xhN5riTVazwObtG2wxdxJzQjshYitDrA/Jmgw+7LH771JEGoPHz2B6waH2o+xl454gc0NrN9bNmsoaOjksBfXEydzURSlVY1IYVraeYtWCnatTItohOm//oNnH7pdeKlNTU0WPMd/+n0+Yg0zA2Ma3Yy0NM17qjCGc0W8y1BRGRGZOp79YOytcemqDcI2phpOZNZv2i687Wup2s/o2Abf/zw38L1D6yCHB6uZ++9KYYLxer2Yt3BVQv0uzO7iur4XYcRbE/D3ouC2s1ADV112nv+t6YyOrQVNA4N5+TVrXF9YCooHzPgN2JLhmg3bMOjaSwV7RrbsFmuOnTiJ2jWq+r9nZqShUb3aSEQS4Vr0PA/7Dh4R2i5d5WjfullQ2e279qFz+5ZB4xL7Hi9s2bFHsGtkTgu1qldFqdutGlWgfp2agqf44TJtChtj3W63cJ3RgAmDTNi97YY++OSrn4IUBmxZnDkJMtOljdt2CxN39y6nYf6SNSH1MKcZhiMOXqZGj/1ceEGV9uHWnXvRTTY2sfBHO3YfEARmxsHsY4IGldnJpqamCP3Cnq1Yck63jsLSLTOrOnj4mOY9xVZEmHc7M9mIF6rGyVwdFYGRLRGypTlm38fs39gD/sxDtyGRGfPRN/ji3RcEIeXnPxcKD0z7Vk3RukVjwZZR5MqLz8Ha/7YKP/I1V1yA009ricdeejdq7WTtYsbV4udE+l16n3cmqlTOxJTps0PsedhS1sCrL8HLb38qfGdeeCdyTglLUMzol13Xb3+Fvu3HArN+A2YLyzSVTNvLbFlizb9L1woG78yjlb2dPzFsENyeYG1iopAI16Lnebhp6AuCoDj8wVsx8euZgvAk9aJmsHA8bz3/gPACsnzNRvS75FzBbnDP/kNRnwSZPfg30/8UJum8/EJ0at8Cw26/Vlj6ZMIGW17+7O1n8co7kwTb4zo1q6HXud2E+180kykuKcHYlx8WnN6YfewrT90jmG5EczmaaXdnTHpTiCH5+vtfYe/+w4LDx/OP3CEIUa+/96XwrDPBccyIh/D8Gx8LdmgN6tVEjWpZQnuZ9oiNDxef1w1zFixHUVFJzFZ22Asqc2KR2tt/9MV0zJr8Pzx89wDM+H0+unRqgzsG9MVw2arJtFl/47GhNyHZ6cSLb02IaruZto0J6ezlqma1qrjgnDPwwJ3XYfbfS/HdzLlC/2rdU8wefupHr2D3vkOC7bXT4RC8rN+f9ANiRbzM1ZYKjHabTViOYpqVoU+/gZefvAd/ff8etu/aLzwwP070hRFIRNgb/q0PjhQ8QO+7/Tq4SksFbReb1KW8Nf5r9L/sPIx+ZqjwQ7MYXVt37I1qW9lAzCPefxcWbmL+ktVc4+9f5izEfXdch3Ytm/rfiEc+eY9ggM4Mr5nHJPtN4gUzfgO23DPyibsFL0W2jBcLxGeaMe7T74T4c+zFif1Gb3zwlfA9UUi0a9HzPNStXQMPPDsGzz1yBwZdfSkWLF0jmM6wZV7phN64fh288MidSElJEoSVqTPnCLaR0YR5B69atwX33NwfjRvWQZLTKXgLM/sxFg6FcfP9LwkvgGNeegjVq1bGkaM5WLxyPY5KhEG2ysNMg758b4Tg6frn/GWCg1s0Yc4Tlw16BI8PHYSP3ngKWVUyhbayJWomgLAJn/H0qA/w9AO3CsH7q2ZVFhQO4yZOFfYxO0zmpMCWgt9+6SF89/NcPPLCO4gVb3442e/dzWAa3yFPviG8TD18zwBkHzkhlJEvW//857945ekhgnDGW6K3EmYDu2bOl4K2ljmybNiyUxhPp874Sxhr9dxTzBb4nidexyP3DBCeqby8Aixe+R9iQbzJUDbU6iIuc5vO5PdHCA/zs3GwfEaUT5h3KItf1ubcG+PKrskKWJytRTM/Rp9BjwmDdywoT890ebqWSGEZMbKP5uDB58YgkWBxGNnyde8BD8W6KQRR7scoS4wlmA0ZC0XTvWsHrq0GQRD6YU4LbJnlqftuxsp1m2MiLJanZ7o8XUs4MPtGptVjS6YtmjQQQqicd/bp+G5m/NhsEURFpkqcjlGWLEkzVW+n9i2FIJPRVkkTRHmDGZYzLSozQL/78ddi0oby9EyXp2sJB7a8xWyyWPBuFk6ELW+xoNHxNDERREVmTJyOUZYuSRMEQRAEQRCJT+z99wmCIAiCIIi4hgRGgiAIgiAIwlobxvvvvA59evVAiyb1hYClLFfvqLL4RiIpyUl48bG7BBd99pkFL2ZhD44eD4RGYO7izFaLxTHctnNviNcbO+615+5Dx7bNhRRFLHTCnY+MirT5BEEQBEEQMeH+KMlQLKLIPYP6o/NprVApMx079xzAB5//KITZipqGkUWtn/TtL+h76xO48d7nBY/OKR+OFDzxREY8PlgIOjvkiddxzV3Dhaj8E8cM56ZQYwFBuQ2124XUShOnzBRikREEQRAEQSQy3aMkQ3Xt1FbIM33346+i1/UP4Juf/sS7Lz8ieGPHzOmlWtXKWD93Mq6+82khJyWTZNfN/Qr3DX8Lv/y5UCjDQjn8M/1D9L3lcSFMiNG4Wm+PfFhwOycNI0EQBEEQ5YVqUZChRL4Y94IQsPzREe/GxoaxcmaG8D/nZK7wv2PbFkK6HmnIBpYRheVxZKmFCIIgCIIgCERVhmLnyjnpy0IUdYHRZrPhpSfuFvImb96+R9hWq0ZVIY2ZPAvHkeM5qFU9y8zTEwRBEARBJCS2KMpQV17SU4j1+M2MP2MTuJvlx2zTohGuuv0pM6slCIIgCIIo14yOkgzVo2sHIV/5EyPHYUuZYBpVDeOop4eg93ndcN3gZ3Ew+5h/e/bRE4JXT+VKPjWrSM1qWciWJJAnCIIgCIKoiIyKkgx1dpfT8Pm7z+PFtybg+5/nGjrWbtaFXnZRd1x/z7PYe+Bw0L61G7ehxOVCzzM7+bc1b1wfDerVwoo1m8w4PUEQBEEQREIyKkoyFAut8+W4FzBq7CRM/uF3w+2MeEl69DNDcfXl5+GOh0chL78QNcvW1HPzCoSYQuz/lGmzMeKxuwQjztz8AqFzlq/ZGOTd06RhXWSkp6Jm9apCftP2rZsK27ds3wtXaanwuWWzhkhOcqJq5UxkZKT5y/y3eWekl0EQBEEQBBFVRkdJhmLL0MwresLXMwRva/E8Llcpck7lRSeszoHVM7nbH37hHUydMSco6GT/y84rCzq5Ugg6eUSiTv1+wmjhguSc2ecuwRuIsWTWBDSsVzukTL3OV0ZyCQRBEARBEFHnQJRkKBaOcEC/XiH7Fy5fh+sGPxObOIwEQRAEQRBE+YJySRMEQRAEQRCqkMBIEARBEARBqEICI0EQBEEQBKEKCYwEQRAEQRCEKiQwEgRBEARBEKqQwEgQBEEQBEGoQgIjQRAEQRAEoQoJjARBEARBEIQqJDASBJGQPHbvQMUsCfEKy//K2nwDJ+MCQRBEPEMCI0EQFYrbbuhjucB29eXnY/CgfpaegyAIIpo4o3o2giCIOBAYj+ec8udptYKrLj8fbVo0woTJM4K2s5yuTc+8Bq5St2XnJgiCsAISGAmCIKJIcYkr1k0gCIIwDAmMBEHEPWd2bocRTwxGmxaNcSj7GD6Y9GNImQH9e+HaKy4UylTKzMDuvQfx6Tc/44vvfvWXWTJrAhrWqy18Fu0fFy5fh+sGPyN8rlwpQ7CNvKJXD1SvloUDh47g6x//wAef/wiv16urrd9PGI0eXTsEnWPvgcM4q89gwYZx6ayJePiFd/wazrdHPoy+F/fABdfch9HPDEWPrqfhVF4Bxk2ciknfzhKuZ+STd+OMDq1x/MQpvDruC0z79e+gc5rRboIgCDVIYCQIIq5hAtOUD0fi2ImTGDN+ChwOOx4fehOOHMsJKnfr9X2wZfse/PH3UrhL3eh9/pl47dlhsNttguDFePHNCXjlqXuQX1CEsROmCtuOHvfVk5aagh8mvIq6tarjyx9+w/6DR9C1cxsMf/BW1KpZVThWD+9OmIrKmemoW6sGXnzLd0xBYZHqMXa7HV+9PwKLV6zHK+9MwjV9zsfo4UNRUFiMp+6/BdNmzcOvcxbhlusvx9iXH8HyNZsEIdTMdhMEQahBAiNBEHHNE8MGATbg6jufxv5DR4Rtv8xZiL++ey+o3LV3DUdRcYn/+2ff/oLJ74/APTdf5RcYf5u7GE/ed7Ngw/jjrHlBx99zc380aVgHl9z4EHbuOShs++qH33A4+ziG3nYNPvpiOg4cPqrZ3n8Wr8bB7OOoUjkz5BxKCELfL3Px3qffC9+ZBnHVH59jzIgHMezpNzHjjwX+uuf/NB439LsI/xs/xdR2EwRBqEFe0gRBxC1M83ZB9zPw+9zFfmGRsW3nPsxbtDKorFRYrJSZjmpZlbFoxXo0aVhX+K5F3949sWTlBpw8lS8cK/7NX7IaTqcDZ3VpDyv5etof/s+ncvOxffc+QTMpCouM7bv3I+dUHhrVrxM37SYIomJAGkaCIOKW6lUrIy0txa85k7J9135cfG43//dundvi8XtvQpdObZCelhpUtnJmBnLzClTP1axRPbRv3RTr503m7q9RLQtWUVhULNgnSmF2jAcPHwspm5uXj6zKmXHRboIgKg4kMBIEkfA0blAH3370Crbv2ocRb03EgcNH4HKV4qKeXTHklqtgs9s062Bl/l60Ch9M+oG7f8fuA7AKj8fD3e5W2A6bLS7aTRBExYEERoIg4pZjJ06hsLAYTRvVDdnXvEl9/2fm4JKakozbH3olaOm6R7eOIccpeQ3v3ncIGempmL9kTeQNj6JnsqntJgiCUIBsGAmCiFuY5o3ZKl564dmoX6emf3uLpg0E20Z/OXeZJk6iSGR2iwM4GV2YXWCVShkh22f+MR9dO7XF+d1PD9nHwtYw72y9sHOw0D7RwMx2EwRBKEEaRoIg4pq3PvwaF/Q4A9M+fQ2fT50Fh9OBO2/si83b9wi2ewy2JMsCYn8+9nnBQzgjLQ03XXOJEIqnTq3qQfWt27gdt15/OR4afAN27T2Io8dP4t9la/Hh59Nwyfln4Yt3X8DUmXOwdsM2wRayTcsmQpxEFkeReVfrYe3Gbeh/2Xl48bG7sOa/rcgvKMTsf5ZZ0j9mtpsgCEIJEhgJgohrNm7dhZuGvYgRj92Fx4cNwsHDRwUhsnbNqn6BkXkP3/P4q3jyvlvw/CN3CjEav/huliAwvv3Sw0H1jfnoG9SvWwvDbr9W0EKywN1MYGSOJ9fcNRwPDr5e8Dy+ru9FyMsrwI49+4XzncrL191mFsanfetmGND/YsGGksVMtEpgNLPdBEEQSthQqwulASAIgiAIgiAUIeMWgiAIgiAIQhVakiYIgtAJi3+YlKQ8bLIwOPJ4igRBEOUBEhgJgiB0MmHMM+jRtYPifmaryJxMCIIgyhtkw0gQBKGTDm2bB2VZkcPSEy5bvTGqbSIIgogGJDASBEEQBEEQqpDTC0EQBEEQBKEKCYwEQRAEQRCEKiQwEgRBEARBEKqQwEgQBEEQBEGoQgIjQRAEQRAEoQoJjARBEARBEIQqJDASBEEQBEEQUOP/FuVQm+2SE7MAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(7, 3))\n",
    "test_data_starts = '2011-12-01 22:00:00'\n",
    "test_data_ends = '2012-01-31 23:00:00'\n",
    "reference_data = data_train.loc[:, 'temp'].copy()\n",
    "test_data = data_train.loc[test_data_starts:test_data_ends, 'temp'].copy()\n",
    "reference_data.plot(ax=ax, label='Reference data')\n",
    "test_data.plot(ax=ax, label='New data')\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "604f8f58",
   "metadata": {},
   "source": [
    "A **Kolmogorov–Smirnov (KS) test** is used to compare the distributions of the training data and the new data. The **null hypothesis** states that both samples are drawn from the same underlying distribution. If the resulting *p-value* falls below a chosen significance level (commonly 0.05), the null hypothesis is rejected, indicating that the distributions differ significantly — a potential sign of **data drift**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "d23e2dd3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KstestResult(statistic=np.float64(0.4571829521829522), pvalue=np.float64(8.54562775188432e-166), statistic_location=np.float64(18.86), statistic_sign=np.int8(-1))"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Kolmogorov-Smirnov test to compare both data sets\n",
    "# ==============================================================================\n",
    "ks_2samp(\n",
    "    reference_data,\n",
    "    test_data,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "3410f241",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 900x300 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plots to compare both data sets\n",
    "# ==============================================================================\n",
    "fig, axs = plt.subplots(ncols=2, figsize=(9, 3))\n",
    "sns.kdeplot(reference_data, label='reference data', color='#30a2da', ax=axs[0])\n",
    "sns.kdeplot(test_data, label='test data', color='red', ax=axs[0])\n",
    "axs[0].set_title('Distribution Comparison')\n",
    "axs[0].set_ylabel('Density')\n",
    "axs[0].legend()\n",
    "\n",
    "sns.ecdfplot(reference_data, label='reference data', color='#30a2da', ax=axs[1])\n",
    "sns.ecdfplot(test_data, label='test data', color='red', ax=axs[1])\n",
    "axs[1].set_title('Cumulative Distribution Comparison')\n",
    "axs[1].set_ylabel('Cumulative Probability')\n",
    "axs[1].legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e41f5bf",
   "metadata": {},
   "source": [
    "The statistical tests and visualizations shown above **indicate a clear difference** between the distributions, even though we know that no drift is actually present.\n",
    "This highlights the importance of using **methods specifically designed for time series data**, since traditional statistical tests may yield misleading results due to the **temporal dependencies and recurring patterns** inherent in such data."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "384f0370",
   "metadata": {},
   "source": [
    "### Distance-Based framework for temporal drift detection\n",
    "\n",
    "This framework implements a distance-based, data-driven approach to detect temporal drift — changes in the underlying data distribution over time — within time series data. It constructs an empirical baseline of normal behavior from historical (reference) data and uses it to assess whether newly observed data deviates significantly from the established norm.\n",
    "\n",
    "The approach is both model-agnostic and distance-agnostic: any statistical distance or divergence measure that quantifies dissimilarity between data samples can be employed (e.g., Kolmogorov–Smirnov, Chi-squared, Jensen–Shannon divergence, or other appropriate metrics)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a951cd12",
   "metadata": {},
   "source": [
    "#### 1. Reference Phase — Estimating the Empirical Distribution\n",
    "\n",
    "The first step is to characterize the **natural variability** of the time series under stable conditions.\n",
    "\n",
    "1. **Select a reference window**  \n",
    "   Choose a historical segment of the time series that represents stable and drift-free behavior. This segment serves as the *reference dataset*.\n",
    "\n",
    "2. **Segment the reference data**  \n",
    "   Divide the reference time series into non-overlapping chunks of equal length:\n",
    "   $$\n",
    "   \\{ C_1, C_2, \\ldots, C_n \\}\n",
    "   $$  \n",
    "   Each chunk $C_i$ corresponds to a fixed temporal window (e.g., one week, one month, or a fixed number of samples).\n",
    "\n",
    "3. **Compute pairwise distances**  \n",
    "   For each chunk $C_i$, compute its distance from the remainder of the reference dataset (or a representative aggregation thereof).  \n",
    "   This produces a collection of distances:\n",
    "   $$\n",
    "   \\mathbb{D}_{ref} = \\{ d_1, d_2, \\ldots, d_n \\}\n",
    "   $$\n",
    "\n",
    "4. **Build the empirical distribution**  \n",
    "   The set $\\mathbb{D}_{ref}$ represents the distribution of distances under normal (non-drifting) conditions. It quantifies the typical level of dissimilarity between stable data segments.\n",
    "\n",
    "5. **Define a drift threshold**  \n",
    "   Select a quantile (e.g., the 95th percentile) from the empirical distribution $\\mathbb{D}_{ref}$ as the drift threshold:\n",
    "   $$\n",
    "   \\tau = Q_{0.95}(\\mathbb{D}_{ref})\n",
    "   $$  \n",
    "   Any distance greater than $\\tau$ indicates a deviation beyond what is expected under normal variability.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e6175ef",
   "metadata": {},
   "source": [
    "<p style=\"text-align: center\">\n",
    "    <img src=\"../img/population_drift_detection.gif\" style=\"width: 750px;\">\n",
    "    <br>\n",
    "    <font size=\"2.5\"> <i>Population Drift Detection - Animation</i></font>\n",
    "</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1dfef72f",
   "metadata": {},
   "source": [
    "#### 2. Monitoring Phase — Detecting Drift in New Data\n",
    "\n",
    "Once the baseline distribution is established, new data can be continuously evaluated for drift.\n",
    "\n",
    "1. **Chunk new data**  \n",
    "   As new observations become available, segment them into chunks of the same length used in the reference phase:\n",
    "   $$\n",
    "   \\{ C'_1, C'_2, \\ldots, C'_m \\}\n",
    "   $$\n",
    "\n",
    "2. **Compute distances to the reference**  \n",
    "   For each new chunk $C'_j$, compute its distance to the reference baseline (either to all reference chunks or to an aggregated representation of the reference distribution).\n",
    "\n",
    "3. **Compare against the threshold**  \n",
    "   - If $d(C'_j, \\text{reference}) \\leq \\tau$, the data is consistent with the reference distribution.  \n",
    "   - If $d(C'_j, \\text{reference}) > \\tau$, flag the chunk as exhibiting potential drift.\n",
    "\n",
    "4. **Interpretation**  \n",
    "   A flagged chunk suggests that the new data segment differs significantly from historical norms, implying a possible population drift or concept shift.  Such cases may warrant further investigation, model retraining, or data pipeline adjustments.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "skforecast_py12",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
